전체 글 266

SpringBoot @RequestBody 그리고 form

@RequestBody 어노테이션은 JSON이나 XML등을 인자로 받을 수 있게 해준다.인자로 변환하는 과정에서 HttpMessageConverter의 구현체가 필요하다.Jackson 라이브러리를 사용중이면 자동으로 등록된다. 태그를 사용한 값을 받을때에는 content type이 multipart/form-data 혹은 application/x-www-form-urlencoded일텐데이를 변환시켜주는 FormHttpMessageConverter가 있으며 MultiValueMap 형태로 받을 수 있다.이런경우엔 보통 객체로 받는것이 훨씬 편하다.(멤버변수 자동 매핑) multipart/form-data의 경우에는 FormHttpMessageConverter에서 분명 지원하지만, HttpMediaTypeN..

dev/web 2017.07.09

2017.05 랜섬웨어 보안패치

랜섬웨어 워나크라이(WannaCry)로 시끄러운 주말이다. 막상 뉴스를 보고 따라해보려니, 윈도우 핫픽스 KB4012598을 알려주는데, 실제로 사용하는 윈도우에 따라 다를 수도 있다.(뉴스의 영향인지 저링크는 폭주상태다) 실제로 해당 취약점에 대해서는 아래 링크로 가서, 해당하는 윈도우에 맞는 핫픽스를 받아야한다. https://technet.microsoft.com/library/security/MS17-010 실제로 필자는 윈7 x64 SP1을 사용중이라, 핫픽스는 KB4012212였다. 혼돈의 카오스에 빠지기 말길 바랍니다.

카테고리 없음 2017.05.15

버퍼풀

빈번한 객체 사용에 자주 사용되는 object pool pattern은 버퍼도 예외가 아니다 목적은 메모리를 할당하고 해제하는 비용 즉, 오버헤드를 줄임으로서 성능향상을 꾀한다고 볼 수 있다 garbage collection이 동작하는 언어에서 더욱 빛을 발하게 되는데 객체의 재사용은 gc에게 일을 적게 주기 때문이다 통신시 수신되는 데이터를 저장하기 위해서 버퍼를 사용할때 효율적인 방법을 생각해보자 1:1과 1:n 상황에 따라 다를것이다 1:1은 수신버퍼가 1개가 필요할것이고 1:n은 n개가 필요할 것이다 수신버퍼는 그렇지만 데이터를 처기하기위해 추가적인 버퍼가 필요한데 이과정은 케이스 바이 케이스 작은 메모리의 잦은 할당과 해제 정확히 객체풀패턴이 필요한 상황이 된다

dev 2017.05.05