
Spring Boot 4.1까지 나온 지금, 무엇이 바뀌었고 무엇을 먼저 준비해야 할까요
두줄요약
Spring Boot 4 이행 시 자동 설정 분리와 Jackson 3 전환으로 발생하는 호환성 문제를 정리했습니다.\n특히 JSON 직렬화 비교와 컨텍스트 로딩 테스트를 사전 안전장치로 권장했습니다.
문제 상황
- Spring Boot 3.5 오픈소스 지원 종료에 따른 Boot 4 이행 필요성
- Jackson 3 기본 전환으로 기존 빈 주입 실패와 애플리케이션 컨텍스트 기동 불가
- 컴파일·기동 오류보다 위험한 응답 JSON 형식의 무경고 변경
구조와 흐름
- 자동 설정·스타터·테스트 슬라이스의 기술별 모듈 분리와 의존성·import 변경
- Jackson 3 패키지·커스터마이저 변경, JSpecify 기반 null 안전성 전환
- API 버저닝, HTTP 인터페이스 클라이언트, 재시도·동시성 제한, gRPC·OpenTelemetry 지원 확대
주의할 점
- Jackson 3 기본값에 따른 필드 정렬, enum, 날짜, Duration, Year 직렬화 형식 차이
- 모듈 목록 초기화로 인한 표준·사내 모듈 제거와 Jackson 3 모듈 빈 미등록 문제
- Boot 4.0의 deprecated API·프로퍼티가 4.1에서 제거되는 호환성 빚
적용해볼 점
- 목표 버전을 Boot 4.1로 설정하고 3.5 단계에서 deprecated 경고 정리
- 주요 응답의 Jackson 2·3 직렬화 결과 비교 테스트와 서비스별 컨텍스트 로딩 회귀 테스트 추가
- 필요 시 classic 계열 스타터로 1차 이행 후 개별 모듈 의존성으로 축소


