본문 바로가기

분류 전체보기99

Spring의 Jackson은 어떻게 동작할까? with ObjectMapper Spring에서 api를 개발하다 보면 @RestController를 많이 사용하게 되는데요. 이때 reqeust와 response에서 'json -> 객체', '객체 -> json'의 과정을 처리해주는 녀석이 바로 MessageConverter입니다.Spring에서 MessageConverter가 json 변환 처리 과정에서 사용하는 것이 바로 Jackson입니다. json을 serialize, deserialze 하는 과정이 무엇을 기준으로 이루어지는지 정리해보겠습니다. 아래 과정은 Jackson의 ObjectMapper를 이용해보았습니다.테스트에는 아래의 Animal class를 사용해보도록 하겠습니다.@ToString @EqualsAndHashCode public class Animal { pub.. 2020. 12. 27.
[Spring] @Bean vs @Component 무엇이 다를까? 스프링을 이용하여 개발을 하면 instance를 bean으로 등록하고, 등록된 bean을 자주 사용하게 됩니다. 그런데 bean으로 등록하는 방법을 여려가지가 있는데요. 그중에 @Bean을 이용하는 방법과 @Componnt를 이용하는 방법이 흔히 사용됩니다. 그런데 이 두 방법은 어떤 차이가 있을까요? @Bean? 우선 @Bean에 대해 살펴보겠습니다. 위의 사지은 Bean interface의 코드를 캡처한 사진입니다. 우선 @Target부분을 살펴보면 적용 가능한 부분이 메서드 선언 부분과, 어노테이션 선언 부분입니다. @Target의 ElementType에 관한 설명은 링크를 참조해 주세요. @Component 이번엔 @Compontnt를 살펴보겠습니다. TYPE에 선언 가능하다고 정의되어 있는데 T.. 2020. 12. 25.
[Linux] ubuntu에서 멀티 제스처 터치패드 사용하기 흔히 맥북의 터치패드가 굉장히 사용하기 편하다고들 말합니다. 두 개, 세 개의 손가락의 동작을 이용해서 편하게 어떤 동작을 할 수 있기 때문이라고들 하죠. 사실 이 기능은 맥북의 장점이라기엔 윈도우에서도 이미 지원하고 있는 기능입니다. 노트북에 윈도우 대신 우분투를 설치해 보았는데요. 우분투에서는 기본적으로 멀티 터치 제스처를 지원하고 있지 않습니다! 원래 이전에 설정하고 잘 사용하던 중에 잘못 건드려서 다시 설정을 하려다 보니 전혀 기억 안 나서 기록용으로 정리해 보았습니다. 어떻게? 멀티 터치 제스처를 지원하는 패키지는 libinput-gestures, fusuma 2개가 가장 많이 사용하는 것으로 보입니다. 각 패키지의 github 링크는 가장 아래에 링크해두었습니다. 2개를 비교해 보았는데 fus.. 2020. 12. 24.
[Spring] 트랜잭션 전파 알아보기, @Transaction, propagation 트랜잭션 전파에 대해 간단하게 정리해보려 합니다. 상세 설명은 다른 블로그를 같이 참조해 주세요. 트랜잭션의 전파에 대해 알아보기 전에 우선 스프링의 트랜잭션에 대해 간단하게 정리해 보겠습니다. @Transaction? @Transaction은 스프링의 AOP를 이용하여 개발자가 편하게 DB 관련 작업을 할 수 있도록 도와줍니다. JPA, Mybatis 등을 사용하지 않을 때, 만약 Datasource를 이용해서 개발할 경우 getConnection(), close()를 하나하나 처리해주어야 합니다. 대략 아래와 같은 모습이겠죠. public class QueryExam { private static final String QUERY = "select count(*) from ANIMAL"; privat.. 2020. 12. 15.