
86
AI 요약
이 글은 AI가 원문을 분석하여 핵심 내용을 요약한 것입니다.
단일 필드 @Builder 클래스의 Jackson 역직렬화 이슈와 해결책
이 게시물은 Lombok의 @Builder를 사용한 단일 필드 DTO에서 발생하는 Jackson 역직렬화 오류의 원인과 해결 방법을 설명합니다.문제 원인
- Jackson은 단일 파라미터 생성자를 delegate 방식으로 처리하여 객체 형태의 JSON 역직렬화 실패
- Lombok @Builder는 package-private all-args 생성자를 생성하고, 이 생성자는 Jackson이 기본으로 인식하지 못함
해결 방식
- @Jacksonized 어노테이션 추가로 빌더 기반 역직렬화 활성화 권장
- 기존 @NoArgsConstructor + @AllArgsConstructor 조합은 생성자 과다 생성과 빌더 외 객체 생성 허용 문제 존재
- 직접 @JsonCreator와 @JsonProperty를 사용하는 방법도 가능
결론
- 단일 필드든 멀티 필드든 모든 @Builder 클래스에 @Jacksonized를 적용해 일관된 역직렬화 지원 및 코드 명확성을 확보
- 이 원칙을 지키면 예상치 못한 JSON 변환 오류를 예방할 수 있음