Spirng 개발을 하다 보면 json 직렬화에는 기본으로 jackson 라이브러리를 사용하게 된다. 다른 API 통신, FE 클라이언트와 통신할 때 제일 많이 쓰는 포맷이 json일 듯하다.
Java 에는 enum 클래스를 지원해서 상수값을 편하게 관리할 수 있는데, 대외 통신 시 직렬화 작업을 할 때 그 값이 꼭 Enum에 정의한 값이 아니어도 가능해야할 때가 있다. 예를 들어 enum에는 성별을 MEN, FEMALE로 정의했지만, 호출 단에서는 M, F로 정의해서 보낸다던지 등이다. 따라서 아래처럼 직렬화를 실패하게 된다.
그러나 Jackson 라이브러리는 @JsonCreator 애노테이션을 지원한다. 아래처럼 선언해주면 역직렬화 시 enum을 유연하게 생성할 수 있다.
이제 아래와 같은 테스트를 통과할 수 있다.
'Programming > Languages (Java, etc)' 카테고리의 다른 글
코루틴 Thread confinement 기법 (0) | 2024.10.28 |
---|---|
[Kotlin] runBlocking vs coroutineScope (0) | 2024.08.02 |
[Java] JDK 21 Virtual Threads 톺아보기 (1) | 2024.01.04 |
[JPA] JPA와 @Transactional (2) | 2023.12.03 |
[Spring] AOP 2편 - Spring의 AOP과 @Transactional (1) | 2023.12.03 |
댓글