- [Java] Jackson 3.02025년 12월 08일
- 아몬드맛빼빼로
- 작성자
- 2025.12.08.:14

Spring 7.0, JDK 25, Gradle 9.0 그리고 Jackson 3.0?
2025년 10월 3일 Jackson 3.0이 출시되었다. Spring 7.0의 정식출시가 임박하였기에 Spring 프레임워크와 강한 결합을 가지는 Jackson이 먼저 출시된 것으로 보인다. JVM 진영이 대폭 바뀌는 와중의 업데이트이니만큼 큰 변경점들을 정리해보고자 한다.
패키지 경로 변경
우선 Jackson 3.0 도입 시 바로 알 수 있는 변경점이 있는데 패키지 경로 관련 변경이 있다.
Jackson 2.x까진
com.fasterxml.jackson
경로를 따랐지만
이젠 Group ID가 변경되어서
tools.jackson
으로 수정되었다.
그에 따라 만약 기존 코드에서 'ObjectMapper'를 import 받고 있었다면 import 경로역시 수정해야 하며 Jackson 종속성 역시 수정되어
implementation('tools.jackson.core:jackson-databind:3.0.0')다음과 같이 추가해야 한다.
더보기Spring Boot 4.0에선 하위 호환성을 위해 기존 패키지 경로역시 사용은 가능하지만 자동 Bean 등록과 같은 것이 안되기 때문에 주의해야 한다.
불변성
이제부터 ObjectMapper와 같은 클래스에서 추가 설정이 필요하다면 빌더 패턴의 사용이 강제된다. 이것은 과거 버전에서는 선택 사양이었지만 이제는 불변 객체들로 인하여 필수 사양이 되었다.
final var mapper = JsonMapper.builder() .enable(MapperFeature.SORT_PROPERTIES_ALPHABETICALLY) .enable(JsonWriteFeature.ESCAPE_NON_ASCII) .builder();IOException
이제 JSON 처리 시 명시적으로 IOException에 대한 처리를 명시하지 않아도 된다.
Jackson 3.0에서는 JacksonException이 RuntimeException을 상속받아 구현되었기 때문에 일반적인 상황에서 코드를 더 간결하게 작성할 수 있다.
JDK 최소 사양
기존 Jackson 2.x는 JDK 8 이상을 요구했지만 이제는 대폭 상향되어 JDK 17 이상을 요구한다.
메서드 제거
3.0으로 버전업이 되며 기존에 사용중지 처리된 메서드들이 대거 삭제되었다.다만 JsonNode.asText()과 같은 것들은 삭제되지 않고 여전히 사용 중지상태로 남았다.
결론
Jackson 3.0은 다른 JVM 진영의 변경사항들과는 다르게 앞으로의 변경을 준비하는 초석이라고 볼 수 있다. 굉장히 크리티컬 한 Group ID 변경과 같은 사항도 있지만 자잘한 변경사항이 굉장히 많은 편이다. 그러나 Jackson은 꾸준히 클린 코드에 도달하기 위해 노력하는 오픈소스 중 하나고 변화를 준비하고 있다고 이야기하기 때문에 추후 대규모 변경을 기대해도 좋을 것 같다.
반응형'Java' 카테고리의 다른 글
[Java] Java Platform Module System (0) 2026.03.17 [Java] GC 알고리즘? (0) 2026.03.16 [Java] Gradle 9.0 (0) 2025.12.03 [Java] WAR vs JAR (0) 2025.12.01 [Java] Java RMI (0) 2025.10.06 다음글이전글이전 글이 없습니다.댓글