일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- oracle
- maven
- Stream
- DART
- flutter mac 설치
- db
- datagrip 한글깨짐
- Spring
- TypeScript
- 코어자바스크립트
- 봤어요처리
- Java
- 프로그래머스
- tecoble
- Mac
- REST
- class-transformer
- node.js
- InteliJ
- eqauls-hashcode
- svn
- Aspect
- SQL
- ojdbc6
- @RequestBody
- 프로젝트 여러 개
- JavaScript
- MySQL
- 인텔리제이
- javascript error
- Today
- Total
목록전체 글 (100)
개발자가 되고 싶은 개발자
[분할정복 알고리즘] - 이진 탐색 - 합병 정렬 - 퀵 정렬 - 선택 정렬 [동적 프로그래밍 알고리즘] - 피보나치 수열 문제 - 연쇄 행렬 곱셈 문제 - 스트링 편집 거리 문제 - 모든 정점 간의 최단 경로 - 저울 문제 [탐욕법(욕심쟁이 알고리즘)] - 동전 거스름돈 문제 - 배낭문제 - 최소 신장 트리 - 최단 경로 - 작업 스케줄링 문제 - 작업 선택 문제 - 허프만 코딩 * 탐욕법을 적용해 최소 신장 트리를 구하는 알고리즘 - 프림 알고리즘 - 크루스칼 알고리즘 [정렬 알고리즘] - 버블, 선택, 삽입, 셸, 합병, 퀵, 힙 - 비교 기반 정렬의 하한 - 계수 정렬 - 기수 정렬 [탐색 알고리즘] - 순차, 이진 - 탐색 트리 - 해싱 [근사 알고리즘] - 클래스 P와 클래스 NP - NP-완..
GitHub - fullth/effective-typescript: Effective TypeScript: 62 Specific Ways to Improve Your TypeScript Effective TypeScript: 62 Specific Ways to Improve Your TypeScript - GitHub - fullth/effective-typescript: Effective TypeScript: 62 Specific Ways to Improve Your TypeScript github.com 아이템 28 유효한 상태만 표현하는 타입을 지향하기(valid-states) 타입을 잘 설계 -> 직관적인 코드를 작성할 수 있음. 효과적인 타입설계 -> 유효한 상태만 표현할 수 있는 타입을 만들어..
타입스크립트는 타입 추론을 적극적으로 수행한다. 타입 추론은 수동으로 명시해야 하는 타입 구문의 수를 엄청나게 줄여준다. -> 코드의 전체적인 안정성 향상. 타입스크립트 초보자 vs 숙련자 -> 타입 구문의 수에서 차이 보임. 전부 다 타입을 도배할 필요가 없다는 것을 알 수 있음. 불필요한 타입 구문은 필요없음. 타입 추론에서 발생할 수 있는 문제와 그 해법이 3장의 내용. 목표: 타입 추론이 가능한 경우라도 타입 선언을 작성해야 하는 것이 필요한 상황은 언제인지 이해하기. 아이템 19 추론 가능한 타입을 사용해 장황한 코드 방지하기 결국 타입을 위한 언어 -> 변수를 선언할 때마다 타입을 명시해야 한다고 생각 -> 정곡 let x: number = 12; (x) -> let x = 12; 로 충분. ..
(코어 자바스크립트(정재남 저- 위키북스)를 참조하여 작성.) 코어 자바스크립트 - YES24 자바스크립트의 근간을 이루는 핵심 이론들을 정확하게 이해하는 것을 목표로 합니다최근 웹 개발 진영은 빠르게 발전하고 있으며, 그 중심에는 자바스크립트가 있다고 해도 결코 과언이 아니 www.yes24.com 콜백함수란? 다른 코드의 인수로서 넘겨주는 실행 가능한 코드를 말한다. 콜백을 넘겨받는 코드는 이 콜백을 필요에 따라 즉시 실행할 수도 있고, 아니면 나중에 실행할 수도 있다. -위키백과- 콜백함수에 대해 일상생활의 알람시계에 비유. 약속시간에 늦지 않기 위해 중간중간 잠에서 깨어 핸드폰을 확인하는 것과(수시로 구하는 함수를 직접 호출), 알람시계의 알람을 맞춰놓는 것. (알람설정 함수를 호출 -> 호출 당..
이펙티브 타입스크립트 - YES24 타입스크립트는 타입 정보를 지닌 자바스크립트의 상위 집합으로, 자바스크립트의 골치 아픈 문제점들을 해결해 준다. 이 책은 《이펙티브 C++》와 《이펙티브 자바》의 형식을 차용해 타입스 www.yes24.com GitHub - fullth/effective-typescript: Effective TypeScript: 62 Specific Ways to Improve Your TypeScript Effective TypeScript: 62 Specific Ways to Improve Your TypeScript - GitHub - fullth/effective-typescript: Effective TypeScript: 62 Specific Ways to Improve Y..
(코어 자바스크립트(정재남 저- 위키북스)를 참조하여 작성했습니다.) 코어 자바스크립트 - YES24 자바스크립트의 근간을 이루는 핵심 이론들을 정확하게 이해하는 것을 목표로 합니다최근 웹 개발 진영은 빠르게 발전하고 있으며, 그 중심에는 자바스크립트가 있다고 해도 결코 과언이 아니 www.yes24.com 자바스크립트에서는 실행 컨텍스트가 활성화 될 때(생성될 때), this의 정보가 결정됩니다. (실행 컨텍스트에 대한 설명은 아래 포스팅을 참고하시면 됩니다.) [JavaScript] 실행 컨텍스트 (코어 자바스크립트(정재남 저- 위키북스)를 참조하여 작성했습니다.) (ECMAScript Spec 9.4에 해당 내용이 명세되어 있습니다.) 코어 자바스크립트 - YES24 자바스크립트의 근간을 이루는 핵..
(코어 자바스크립트(정재남 저- 위키북스)를 참조하여 작성했습니다.) (ECMAScript Spec 9.4에 해당 내용이 명세되어 있습니다.) 코어 자바스크립트 - YES24 자바스크립트의 근간을 이루는 핵심 이론들을 정확하게 이해하는 것을 목표로 합니다최근 웹 개발 진영은 빠르게 발전하고 있으며, 그 중심에는 자바스크립트가 있다고 해도 결코 과언이 아니 www.yes24.com ECMAScript® 2023 Language Specification The first and subsequent editions of ECMAScript have provided, for certain operators, implicit numeric conversions that could lose precision or ..
이펙티브 타입스크립트 - YES24 타입스크립트는 타입 정보를 지닌 자바스크립트의 상위 집합으로, 자바스크립트의 골치 아픈 문제점들을 해결해 준다. 이 책은 《이펙티브 C++》와 《이펙티브 자바》의 형식을 차용해 타입스 www.yes24.com GitHub - fullth/effective-typescript: Effective TypeScript: 62 Specific Ways to Improve Your TypeScript Effective TypeScript: 62 Specific Ways to Improve Your TypeScript - GitHub - fullth/effective-typescript: Effective TypeScript: 62 Specific Ways to Improve Y..
이펙티브 타입스크립트 - YES24 타입스크립트는 타입 정보를 지닌 자바스크립트의 상위 집합으로, 자바스크립트의 골치 아픈 문제점들을 해결해 준다. 이 책은 《이펙티브 C++》와 《이펙티브 자바》의 형식을 차용해 타입스 www.yes24.com GitHub - fullth/effective-typescript: Effective TypeScript: 62 Specific Ways to Improve Your TypeScript Effective TypeScript: 62 Specific Ways to Improve Your TypeScript - GitHub - fullth/effective-typescript: Effective TypeScript: 62 Specific Ways to Improve Y..
(코어 자바스크립트(정재남 저- 위키북스)를 참조하여 작성했습니다.) 코어 자바스크립트 - YES24 자바스크립트의 근간을 이루는 핵심 이론들을 정확하게 이해하는 것을 목표로 합니다최근 웹 개발 진영은 빠르게 발전하고 있으며, 그 중심에는 자바스크립트가 있다고 해도 결코 과언이 아니 www.yes24.com 자바스크립트의 데이터 타입에는 기본형(원시형, Primary Type)과 참조형(Reference Type)이 있습니다. 기본형 데이터와 비교해보며 참조형에 대해 알아보도록 하겠습니다. 객체(Object) 자바스크립트의 참조형은 객체이고, Array, Function, RegExp, Date, Map, Set 등이 객체의 하위분류로 속해있습니다. 기본형의 데이터 할당 먼저, 기본형과 참조형의 구분은 ..
문제 Spring Initializr에서 생성 후 프로젝트 실행 시 서버가 구동되지 않고 바로 종료되었습니다. 원인 및 해결방법 build.gradle에 아래 의존성을 추가 후 refresh 하시면 됩니다. implementation 'org.springframework.boot:spring-boot-starter-web' InteliJ의 Gradle탭에서 해당 의존성을 살펴보면, Spring Boot에서 사용하는 내장 톰캣이 spring-boot-starter-web과 연관돼 있는 것을 보실 수 있습니다. 해당 라이브러리가 없어서 발생하는 문제이고, web 모듈을 받아주면 됩니다. 가끔 프로젝트를 의존성 없이 생성한 후 실행이 안돼서 무지성으로 검색부터 할 때가 있어 기록합니다.
공부와는 거리가 멀었던 저였기 때문에 처지가 비슷한 지인들로부터 개발자로의 전향 등에 대한 연락을 종종 받습니다. 이런저런 핑계로 많은 허송세월을 보냈습니다. 일 해온 시간에 비해 도움 줄 것이 없어 부끄럽지만, 스스로에게 하는 말이다 생각하고 공부하는데 있어 방향에 도움이 될 것 같은 제 생각들을 적어보겠습니다. (웹 개발을 전제로 작성합니다.) 도메인 도메인에는 여러 뜻이 있지만 여기서 말하고자 하는 도메인은 '문제를 해결하고자 하는 범위'를 뜻합니다. 흔히 분야를 지칭하는 용어로 사용되고 포탈, 금융, 교육, 게임, 이커머스 등이 있으며 세부적으로 이커머스 내에서 정산, 결제, 마감등도 하나의 도메인으로 사용되곤 합니다. 예시로 카카오 페이의 도메인은 금융, 인프런은 교육 이라고 할 수 있습니다. ..
API 문서와 소스를 통해 스택 자료구조가 작성되어 있는 Stack 클래스를 분석해보도록 하겠습니다. Java Platform SE 8 docs.oracle.com Stack 클래스의 구조 Stack 클래스란? public class Stack extends Vector 스택 클래스는 객체의 LIFO 스택을 표현합니다. 스택 클래스는 백터를 스택으로 취급할 수 있게 해주는 다섯 가지 작업로 백터 클래스를 확장합니다. push와 pop 작업이 제공되고, 스택의 상단 요소를 찾기 위한 메서드와, 스택이 비어있는지 확인할 수 있는 메서드, 그리고 요소를 찾을 수 있는 메서드와 상단으로부터 얼마나 떨어져 있는지 찾기 위한 메서드가 제공됩니다. 더 완전하고, 일관된 LIFO 스택 작업의 set은 Deque 인터페..
문제 devtools 의존성과 livereload 설정을 해주었는데도 소스가 자동으로 빌드되지 않음 implementation 'org.springframework.boot:spring-boot-devtools' spring.devtools.livereload.enable=true 해결방법 (Mac) ctrl + shift + a 를 누르면 검색 창이 뜬다. Advanced Settings 검색. Allow auto-make to start even if developed application is currently running 체크 (2021.2 부터 Resistry에서 설정했던 것이 Advanced Settings로 변경됐다고 함.) MEMO 해당 설정은 프로젝트 단위로 적용됨. 기존 작성 링크 참..
문제 통신후 서버에서 반환하는 값을 정상적으로 넘겨받았음에도 statusText가 parsererror로 떨어짐. 원인 서버에서 받는 데이터 타입과 넘겨주는 타입이 다름. 사용중인 라이브러리에서 text 타입으로 넘겨주고 있음. 해결방법 명시적으로 dataType을 text로 지정해줌. dataType: "text",
문제 ajax 통신으로 데이터 전송 시 서버측에서 해당 오류 발생 원인 put 메서드 이용 시 json 형식으로 요청하여야 하는데, 사용하는 라이브러리에서 text데이터를 보내고 있었음. 해결방법 JSON.stringify(item) json형식으로 변환하여 전송하여 해결함. 참고 Spring post method "Required request body is missing" @PostMapping(path="/login") public ResponseEntity loginUser(@RequestBody Map userData) throws Exception { return ResponseEntity.ok(userService.login(userData))... stackoverflow.com
코딩테스트 연습 - 124 나라의 숫자 programmers.co.kr 10진법 124나라 10진법 124나라 1 1 6 14 2 2 7 21 3 4 8 22 4 11 9 24 5 12 10 41 500,000,000 이하의 자연수 n이 매개변수로 주어질 때, n을 124 나라에서 사용하는 숫자로 바꾼 값을 return해주는 함수를 작성하는 문제입니다. 효율성 테스트 실패 코드 public String failSolution(int n) { String answer = ""; int rest = 0; while(n > 0) { rest = n % 3; n /= 3; if(rest == 0) { rest = 4; n -= 1; } answer = rest + answer; } return answer; }..
부정적으로 생각하는 건 논리력만 있으면 되지만, 긍정적으로 생각하는 건 상상력도 필요한 작업이라 더 고되다. 그래서 대부분의 사람들은 긍정적으로 생각하기보다 부정적으로 생각하고 끝내버린다. OKKY | 밥 먹다 나온 얘기: 새로운 기술, 찍먹이라도 해볼걸! 오늘 친한 개발자 분들과 점심을 먹으며, CUDA에 대한 이야기를 하게 되었습니다. CUDA를 잘 모르시는 분들을 위해 설명 드리면, NVIDIA 그래픽카드의 연산 가속 기능을 이용할 수 있는 프로그래밍 okky.kr
먼저, JVM이란 - JVM은 Java Virtual Machine의 약자로 자바 가상머신을 의미합니다. - 우리가 작성한 자바 코드는 컴파일러를 통해 자바 바이트 코드 즉, class 확장자 파일로 컴파일됩니다. - 해당 파일을 JVM위에서 동작시킴으로서 JVM만 설치되어 있다면 운영체제에 구애받지 않고 프로그램을 동작할 수 있습니다. 위 그림의 3번인 Runtime Data Area가 알아보고자 하는 JVM의 메모리 영역입니다. 운영체제 위에서 JVM이 실행되면서 할당받는 메모리 영역입니다. 5개의 영역이 존재합니다. 메소드, 힙, 스택 영역에 대해서만 알아보도록 하겠습니다. 메소드 영역(Method Area) 스택 영역(Stack Area) / 힙 영역(Heap Area) Reference 마로의 ..
Java에서의 정렬 자바에서 데이터를 정렬해야 할 때, 기본적인 정렬은 java.util 패키지에 정의되어 있는 Arrays와 Collections의 sort메소드를 사용합니다. int[] randomNum = {3, 4, 6, 3, 2}; Arrays.sort(randomNum); String[] fruits = {"apple", "banana", "kiwi"}; Arrays.sort(fruits); ArrayList alphabetList = new ArrayList(Arrays.asList("C", "A", "B", "a")); Collections.sort(alphabetList); 위의 예시대로 작성한다면, 기본 정렬인 오름차순으로 정렬하게 됩니다. 기본적으로 제공되는 기능들로 오름차순, 내림차..
부제- 역할, 책임, 협력 관점에서 본 객체지향 객체지향의 사실과 오해 - 교보문고 역할, 책임, 협력 관점에서 본 객체지향 | 현재의 소프트웨어 개발에 있어 가장 중요한 패러다임이 객체지향이라는 사실에 대부분 이견이 없을 것이다. 절차형 패러다임을 접목한 C++나 함수형 www.kyobobook.co.kr 이렇게 작성하면 자바든 뭐든 무슨 차이가 있지? 내가 지금 자바를 왜 쓰는지는 알고 쓰고 있는건가? 라는 의구심이 들었다. 그렇게 객체지향에 대해 다시 공부해보고, 고민해보았지만 필자가 지적하는 클래스나 상속을 중심으로 객체지향을 바라보고 있었다. 객체지향, 말 그대로 객체를 지향한다는 객체지향 패러다임에서 '객체'란 무엇일까 찾아보면, '현실세계에 대한 모방'과 같은 얘기를 쉽게 볼 수 있다. 복잡..
사파리 -> 파일 -> 가져오기 -> Google Chrome...
환경 InteliJ + SpringBoot + Thymeleaf 상황 구글링 해본 결과 다음과 같은 설정과 Resisty의 수정이 필요하다고 하여 적용하였으나 작동되지 않았습니다. spring.thymeleaf.cache=false spring.devtools.restart.enabled=true spring.devtools.livereload.enabled=true 해결방법 Run > Edit Configurations Running Application Update Policies의 On 'Update' action / On frame deactivation 항목을 Update classes and resources로 변경해줍니다.
고마운 분에게 책을 추천받아서 읽어보았다. 전체 227페이지 중 애자일에 관한 내용은 10장 남짓으로 별로 되지 않는다. 물론 중간중간 언급은 하긴 하지만 전체적인 내용은 제목과 같이 '함께 자라기'에 초첨이 맞춰져있다. 이직을 준비하다보면, 최근 개발업계에서는 협업과 커뮤니케이션에 대한 부분을 굉장히 집중해서 본다는 것을 알 수 있다. 나도 활발한 커뮤니케이션이 이뤄지는 곳으로 옮기고 싶지만, 정확히 왜 그렇게까지 협업이 중요한지, 협업에 대해 어떤 시각으로 바라보고 있는지와 또 어떤 시각으로 볼 수 있는지에 대해 궁금하곤 했다. 적절한 시기에 너무 좋은 책이였다. 저자는 애자일이 좋다고 강요하지 않는다. 책은 '자라기', '함께', '애자일' 총 3장으로 이루어져있다. 첫 장은 개발자로 일하면서 나의..
기본적인 자료구조인 큐에 대해서 작성한 소스를 통해 알아보도록 하겠습니다. 전체소스 import java.util.NoSuchElementException; class Queue { private Node front; private Node rear; public void add(T item) { Node node = new Node(item); if(rear != null) rear.next = node; rear = node; if(front == null) front = rear; } public T remove() { if(front == null) throw new NoSuchElementException(); T data = front.data; front = front.next; if(fro..
상황 API를 호출하여 컨트롤러에서 @RequestBody 어노테이션을 사용하여 데이터를 받아왔습니다. 하나의 데이터를 제외한 나머지는 정상적으로 받아오고, 특정 값만 받아오지 못하여 문제가 되었습니다. 해결책 "Spring mvc uses jackson to parse json by default. It is guessed whether the field name of the entity class is changed when the field name is converted to json." Spring은 json파싱을 위해 기본값으로 jackson 라이브러리를 사용한다고 합니다. 필드명을 아래와 같은 형태로 작성하게 되면 IDE혹은 Lombok에서 자동생성해주는 Getter/Setter의 메소드명은..
유클리드 알고리즘에 대해 알아보고, 관련 문제를 해당 알고리즘으로 풀어보도록 하겠습니다. 유클리드 알고리즘, 유클리드 호제법(互除法)이란? 유클리드 호제법(-互除法, Euclidean algorithm) 또는 유클리드 알고리즘은 2개의 자연수 또는 정식의 최대공약수를 구하는 알고리즘의 하나이다. 호제법에 대한 설명은 다음과 같습니다. 두 수가 서로 상대방을 나누어서 결국 원하는 수를 얻는 알고리즘을 나타낸다. 호제법이라는 말은 서로(互) 나누기(除) 때문에 붙여진 이름이다. 이 뜻의 '호제' 라는 단어가 따로 있지는 않다. 다시, 유클리드 호제법 2개의 자연수(또는 정식) a, b에 대해서 a를 b로 나눈 나머지를 r이라 하면(단, a>b), a와 b의 최대공약수는 b와 r의 최대공약수와 같다. 이 성질..
최근 몇 개월간 배치 프로그램 개발을 맡아서 진행하였는데, 반복적인 업무를 자동화 할 수 있다는 점에서 굉장히 흥미로웠습니다. 아직은 경험해 본 범위 내에서만 활용할 줄 알기때문에, 다른 사람들과 기업에서는 어떻게 활용하고 있는지, 추가적인 기능은 없는지 찾아보며 Spring Batch에 관하여 정리해보려 합니다. Spring Batch란 A lightweight, comprehensive batch framework designed to enable the development of robust batch applications vital for the daily operations of enterprise systems. 엔터프라이즈 시스템의 운영에 필수적인 강력한 배치 애플리케이션을 개발할 수 있도..
한빛미디어의 이것이 취업을 위한 코딩테스트다 with 파이썬을 요약 정리했습니다. 그리디 알고리즘이란 - 탐욕 알고리즘, 탐욕법 - 여기서 탐욕적이라는 말은 현재 상황에서 지금 당장 좋은 것만 고르는 방법을 의미한다. 그리디 알고리즘의 특징 - 매 순간 가장 좋아보이는 것을 선택 - 현재의 선택이 나중에 미칠 영향에 대해서는 고려하지 않음 - 사전에 외우고 있지 않아도 풀 수 있을 가능성이 높은 문제 유형 예제문제- 거스름돈 거스름돈으로 사용할 500, 100, 50, 10원짜리 동전히 무한히 존재한다고 가정. 거슬러 줘야 할 돈이 N원일 때 거슬러 줘야 할 동전의 최소 개수를 구하라. (단, 거슬러 줘야 할 돈 N은 항상 10의 배수이다.) 소스코드 - 예제 소스 3-1.py를 자바로 작성하였음 Git..