목록전체 글 (17)
Pko
java.util.LinkedHashMap connot be cast to object restTemplate로 Response 되는 JSON 데이터를 사용하기 편한 형태로 변경하기 위해서는 JSON 데이터를 deserialization하여 pojo 형태의 사용하기 편한 객체화를 해여 한다. JSONParser json = new JSONParser(); Object obj = json.parse(jsonMsg); JSONObject jsonObj = (JSONObject) obj; 처음에는 json-simple 라이브러리를 사용하여 deserialization하려 시도 하였지만 아래와 같은 오류가 발생하였다. java.util.LinkedHashMap connot be cast to object 문제 ..
cannot deserialize from object value 에러 Rest API Test코드 코딩중 RestTemplate에서 반환되는 ResponseEntity.getBody 값이 DTO로 자동 변환되지 않는 오류가 발생하였다. DTO @Setter @Getter @Builder public class ResponseDTO { private boolean success; private Object data; private String msg; } RestTemplate ResponseDTO response= restTemplate.postForObject( url, signUpRequestDTO, ResponseDTO.class); Type definition error: [simple type..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/tJwAG/btrcXkZngrx/KgI4lUhkdxpfBXmvkEhpg1/img.png)
URL vs URI URL과 URI를 들었을때 보통 우리는 URL을 잘못쓴건가 하는 생각을 할때도 있다 URL은 많이 사용하고 접해봤기에 잘 알고 있지만 URI라는 것은 생소하기 마련이다. 그렇기에 이번에는 URL과 URI에 대하여 간략하게 알아볼 것이다. URI 통합 자원 식별자(Uniform Resource Identifier, URI)라 불리는 URI는 인터넷에 있는 자원을 나타내는 유일한 주소이며 URI의 존재는 인터넷에서 요구되는 기본조건으로서 인터넷 프로토콜에 항상 붙어 다닌다. 또한 URI는 균일성을 보장하기 위해 구문 규칙을 따르고 또한 계층적 명명 체계를 통해 확장성을 유지한다. 우리가 자주 사용하는 URL은 URI의 하위 개념으로 URL과 URN이 존재한다. URI의 표현방법은 아래와 ..
Strict mode 자바 스크립트는 초보 개발자에게 쉬운 것이 되도록 설계되었으며, 때로는 오류를 일으킬만한 동작을 에러없이 동작한다. 그렇기 때문에 일부는 즉각적인 문제를 해결 할수 있지만, 일부는 더 심각한 문제를 발생기키게 된다. 이러한 상태를 공식적인 명칭은 아니지만 "느슨한 모드(sloppy mode)"라 불린다. 엄격한 모드는 이러한 실수를 오류로 처리해서 그것을 발견하고 즉시 고칠 수 있도록 오류를 발생시키게 되는 것이다. "엄격한 모드"(Strict mode) 라 불리며 JavaScript의 ES5 이전의 암묵적인 "느슨한 모드(sloppy mode)" 를 해제하기 위한 방법이다 엄격한 모드는 구문과 런타임 동작을 모두 변경하며 여러가지의 상황이 바뀌게 된다. 변환 실수를 오류로 해석하거..
Array 우선 배열(array)은 같은 타입의 변수들로 이루어진 유한 집합으로 정의되고 배열을 구성하는 값을 배열요소(element), 배열에서의 위치를 가리키는 인덱스(index)를 가진다. Array객체는 배열의 프로토타입으로 탐색과 변형 작업을 수행하는 메서드를 갖는, 리스트와 비슷한 객체이다 특히 JavaScript에서 배열의 길이와 요소의 자료형은 고정되어 있지 않다. 배열의 길이가 언제든지 늘어나거나 줄어들 수 있기 때문에 JavaScript 배열들은 밀집도가 보장되지 않는다. 그렇기 때문에 흔히 Array 생성, element 수정, element 삭제 등의 작업을 위해 반복문, Array객체 내부 메서드를 사용하는데 있어 주의가 필요하다. 여기서는 Array객체가 소유한 메서드를 사용하는..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/BWBpT/btq8Z0K3jmo/bfWrKhdaTGhPcPpHdITyTK/img.png)
웹 페이지가 그려지는 과정 먼저 DOM을 이해하기 위해서는 웹 페이지의 빌드과정을 알아야 한다. Critical Rendering Path 브라우저가 서버에서 페이지에 대한 HTML 응답을 받으면 화면에 표시되기 전에 많은 단계를 거쳐야 하는데 웹 브라우저가 원본 HTML 문서를 읽어들인 후, 스타일을 입히고 대화형 페이지로 만들어 뷰 포트에 표시하기까지의 과정을 Critical Rendering Path, CPR이라고 한다. CRP의 6단계 과정 DOM ( Document Object Model ) 트리 구축 CSSSOM ( CSS Object Model )트리 구축 JavaScript 실행 렌더 트리 구축 레이아웃 생성 페인팅 위와 같이 CRP 과정은 6단계로 나누어져 있지만 대략 렌더 트리 구축을 ..
호이스팅 ( Hosisting ) 호이스팅(hoisting)은 ECMAScript® 2015 언어 명세 이후로 사용된 용어이다. JavaScript에서 실행 콘텍스트(특히 생성 및 실행 단계)가 어떻게 동작하는가에 대한 설명이다. 자바스크립트 함수는 실행되기 전에 함수 안에 필요한 변수값들을 모두 모아서 유효 범위의 최상단에 선언한다. 해당 함수를 확인하고 함수 안에 존재하는 변수/함수선언에 대한 정보를 기억하고 있다가 실행시킨다. 즉, 함수 내에서 사용되는 변수/함수 선언 정보를 다른 코드보다 우선적으로 선언함으로서 변수/함수를 사용하는데 문제가 없도록 하기 위한 작업으로 볼수 있다. 실제로 코드가 끌어올려지는 건 아니며, 자바스크립트 Parser 내부적으로 끌어올려서 처리하는 것 임으로 실제 메모리에..
클로저 (closure) 클로저(closure)는 자바스크립트에서 중요한 개념 중 하나로 MDN 공식문서를 참고하면 아래와 같이 설명하고 있다. "함수와 함수가 선언된 어휘적(lexical) 환경의 조합을 말한다. 이 환경은 클로저가 생성된 시점의 유효 범위 내에 있는 모든 지역 변수로 구성된다." 물론 클로저는 자바스크립트만의 고유의 개념은 아니고 함수를 일급 객체로 취급하는 함수형 프로그래밍 언어(Functional Programming language: 얼랭(Erlnag), 스칼라(Scala), 하스켈(Haskell), 리스프(Lisp)…)에서 사용되는 중요한 특성이다. 클로저를 이해하기 앞서서 "함수와 함수가 선언된 어휘적(lexical) 환경의 조합을 말한다" 이 말만 가지고는 클로저가 무었인지..