1. 스프링 부트의 Web starter가 들어 있으면 controller에서 객체를 반환해도 json으로 변환되어 client에 보내진다. 2. 복잡해 보이는데 이걸 왜 쓰냐는 게 질문이다. 3. ResponseEntity는 HTTP 프로토콜의 response 정보를 편하게 설정하기 위해서 사용한다. 3-1 단순히 body에 들어갈 정보를 json으로 변환해서 보내는 것은 너무 기본적이다. 3-1-1 이것은 Controller에 @RestController가 지정되면 자동으로 json 파서가 세팅된다. - @ResponseBody 3-2 실 개발에서 외부시스템과 연동시 가장 문제가 되는 부분 중 하나가 인코딩인데 3-2-1 Content-Type을 설정하여 Encoding을 지정해야 하고, Accept..
1. 프로젝트마다 사용하는 JDK 버전이 다른 경우가 많다. VS Code에도 각 프로젝트마다 자바버전을 다르게 할 수 있다. 1-1 이 점이 왜 필요한지 대해 예를 들어 보면 전자정부 프레임워크는 몇 년전까지 Java 7을 요구하였다. 1-2 그런데 VS code에서 자바 언어 지원을 위한 Java Language Server는 최소 Java 8을 요구한다. 1-3 이런 경우 두 개 이상의 JDK를 지정할 수 없다면 프로젝트를 개발할 수가 없다. 1-3-1 Java 7로는 자바 언어 서버가 동작하지 않아서 VS Code로 자바 개발이 불가능하다. 1-3-2 Java 8로 지정할 경우 Java 7이 지원하는 아주 오래된 라이브러리가 동작하지 않아 문제가 생길 수 있다. 2. 이것을 해결하기 위해서는 두 ..
1. REST 서비스를 구현하기 위해서 1-1 Spring MVC -> 고전적인 방식 Front Controller 모델이다. 1-2 Spring WebFlux -> Reactive 방식으로 동작하는 REST를 구현하는 기술이다. 1-3 Spring WebFlux fn -> Reactive 방식으로 동작하는데 functonal programming model을 사용한다. 1-3-1 Node.js의 express 서버를 자바로 구현한 거라 생각하면 된다. 2. REST 서비스를 사용하기 위한 클라이언트로 2-1 Spring RestTemplate -> 고전적인 방식 2-2 Spring WebClient -> 스프링의 reactive 클라이언트를 구현하는 기술이다. 솔직히 좋은지는 모르겠다. 위의 내용만 이..
0. 광고를 붙여 더니 진짜 볼품이 없다. 하루에 1~10원 정도 들어오는데 의미가 있나 싶다. 1. 지금까지 쓴 글들을 보니 나에게도 전혀 도움이 안되 보인다. 2. 처음봐도 알 수 있게 적어야 할 것 같다. 3. Richardson Maturity Model은 REST의 표준 같은 기능을 한다. REST의 품질 수준에 대한 것이다. 3-1 SOAP같은 기술은 표준이 있지만 REST는 없기 때문에 이것을 준용하는 것이다. 4. 간단하게 말하면 Level이 3개로 구분 되는데, 엄밀하게 말하면 Level 0을 포함하여 4개다. 4-1 Level 3은 Hypermedia Controls로 스프링이 주구창창 지원하는 HATEOS 기능을 생각하면 된다. 4-1-1 말이 자동 구현이지 진짜 짜증나고 실서비스에서..
1. 아래는 간단한 이진 트리의 생성과 방문에 대한 자바스크립트 코드이다. 2. 다 쉽게 이해될 것이지만 post order traversal를 iteration으로 구현하는 경우 상당히 까다롭다. 2-1 노드의 데이터가 찍히는 시점이 좌우 트리를 모두 방문한 후가 되기 때문에 2번의 stack의 insertion이 필요하다. 2-2 C언어의 경우는 주소 직접 다루기 때문에 별도의 값이 필요가 없지만, 자바스크립트는 대신 객체가 있어 편리하다. 3. 대부분의 언어는 문제 풀이에서 사용할 수 있는 단순한 stdin을 지원하는데 자바스크립트는 없다. 3-1 그래서 readline-sync라는 node 라이브러리를 npm으로 설치하여 사용하였다. var readlineSync = require("readlin..
1. 노드는 그냥은 안된다. 별 수를 써도 안된다. 2. 사용 하려면 비동기적으로 사용할 수는 있는데 알고리즘 같은 것 연습하기에 별로 좋지 않다. 3. 아주 좋지 않다. 4. 방법은 있다. npm으로 readline-sync를 설치하면 된다. 4-1 어쨋든 돌아간다. 난 이걸로 만족할란다. var readlineSync = require('readline-sync'); var input = readlineSync.question('Read from console: '); console.log('Yes, 맞다' + input); 5. 위의 라이브러리를 가지고 Binary Tree 생성 var readlineSync = require('readline-sync'); class TreeNode { const..
parentElement: element 속성으로 자신의 부모를 리턴 className: element속성으로 class를 가지고 있음 preventDefault(): 함수로 이벤트의 기본 동작을 제거함. react에서 많이 사용하는데 똑같다. querySelector(): css selector 방식 element를 검색. 가장 많이 쓰긴한데 여기 쓴 이유는 element를 기준으로 하위 검색 innerText: 속성으로 element text를 가지고 있다. innerHTML과는 다르게 text만 변경할 때 편리 remove(): 메소드로 동적으로 생성한 DOM element를 지우기에 편리하다. removeChild 같은 거 보다 훨 낫다. esc 키는 27번이다. click 이벤트를 걸어 줄 때 ..
예전 글을 읽을 때 마다 드는 생각이 더럽게 글 못 쓴다는 것이다. 그래서 핵심이 뭐냐고 내가 써놓고 내가 이해 못하고 있는 걸 보면 정말 자괴감이 든다. 정리 - * 보내는 데이터는 content-type이 데이터의 형식과 charset을 지정한다. * 일반적으로 application/x-www-form-urlencoded; charset=utf-8 로 지정한다. charset이 다르면 다른 것을 설정한다. 1. Spring의 RestTemplate이든 jQuery의 aJax이든 크롬 브라우저이든 http client가 request를 구성해야 한다. 2. 이 request를 구성할 때 중요한 부분 중 하나가 아래 두 가지 이다. 2-1 어떤 형식의 data를 보낼 것인지 - json, xml, for..
- Total
- Today
- Yesterday
- 도커 개발환경 참고
- AWS ARN 구조
- Immuability에 관한 설명
- 자바스크립트 멀티 비동기 함수 호출 참고
- WSDL 참고
- SOAP 컨슈머 참고
- MySql dump 사용법
- AWS Lambda with Addon
- NFC 드라이버 linux 설치
- electron IPC
- mifare classic 강의
- go module 관련 상세한 정보
- C 메모리 찍어보기
- C++ Addon 마이그레이션
- JAX WS Header 관련 stackoverflow
- SOAP Custom Header 설정 참고
- SOAP Custom Header
- SOAP BindingProvider
- dispatcher 사용하여 설정
- vagrant kvm으로 사용하기
- git fork, pull request to the …
- vagrant libvirt bridge network
- python, js의 async, await의 차이
- go JSON struct 생성
- Netflix Kinesis 활용 분석
- docker credential problem
- private subnet에서 outbound IP 확…
- 안드로이드 coroutine
- kotlin with, apply, also 등
- 안드로이드 초기로딩이 안되는 경우
- navigation 데이터 보내기
- 레이스 컨디션 navController
- raylib