본문 바로가기

spring7

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.
[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.
[Spring] 스프링의 DI를 알아보자 (Dependency Injection) DI에 대해 간략하게 정리해 보겠습니다. 우선 DI는 Dependency Injection의 앞글자를 딴 말로, 의존 주입이라고 해석할 수 있습니다. 들어가기에 앞서 DI는 스프링의 핵심 개념 중 하나이지만 스프링에서만 사용하는 개념이 아니란 것을 알아 두시면 좋겠습니다. 아래의 모든 코드는 toy project에서 추려내고 수정을 가한 코드로, 예시를 위한 코드입니다. 의존 이란? 위에서 DI가 '의존 주입'이라고 설명했는데, 먼저 '의존'이 무엇인지 간단하게 알아보겠습니다. 의존의 사전적인 의미는 다음과 같습니다. (네이버 사전 참조) 명사, 다른 것에 의지하여 존재함. 이 의미를 객체에 적용시켜보면 어떻게 될까요? 예를 들자면 '어떤 객체 A가 B에 의지하여 존재한다.'라고 생각해 볼 수 있습니다... 2020. 12. 12.