
백엔드
올해에는 DTO에 @Jacksonized 하나 놓아 드려야겠어요
두줄요약
Lombok `@Builder`와 Jackson을 함께 사용할 때 단일 필드 DTO에서 역직렬화 오류가 발생하는 원인을 설명했습니다. `@Jacksonized`를 사용하면 빌더 기반 역직렬화를 명시적으로 활성화할 수 있습니다.
핵심 내용
- Lombok
@Builder와 Jackson 역직렬화를 함께 쓸 때 단일 필드 DTO에서 JSON 객체가 역직렬화되지 않는 문제 정리 - 원인으로 Jackson의 단일 파라미터 생성자 처리 방식과 Lombok의 package-private all-args 생성자 동작 차이 설명
- 해결책으로
@Jacksonized추가를 권장하고, 대안으로@NoArgsConstructor+@AllArgsConstructor또는 수동@JsonCreator제시 @Jacksonized는 컴파일 타임에@JsonDeserialize와@JsonPOJOBuilder를 생성해 런타임 영향 없이 동작
