- [Spring] Spring Boot 4.0??2025년 08월 12일
- 아몬드맛빼빼로
- 작성자
- 2025.08.12.:38

2025년 5월 21~23일에 진행되었던 Spring IO 2025에서 Spring 7.0, SpringBoot 4.0이 발표되었다!
이 글에선 그 중 Spring Boot 4.0의 변경사항에 대하여 집중하여 알아보려고 한다.
가장 중요한 변화들
이번 릴리즈를 통해 변화한 점은 수없이 많지만 세션에서 중요하게 다룬 것들은 다음과 같다.
JDK 버전 변화
Spring 7.0,SpringBoot 4.0은 JDK 17을 기본으로 사용하고 새로운 LTS인 JDK 25 사용을 강력하게 권장하고 있다. JDK 25에서 이번 릴리즈의 주요 개선점인 가상 스레드 활용과 AOT 지원이 더 뛰어나기 때문에 성능이 더 좋을 것이라 발표하였다.
Jakarta 11 EE
이번 릴리즈에서 Jakarta 11 EE로의 전환이 완료되었다.또한 그 외에 Jackson 3와 Kotlin 2 등의 라이브러리 역시 버전업이 적용되었다.
Nullability 선언을 위한 JSpecify 도입
API의 Null 가능성을 명확히 표현할 수 있도록 JSpecift 기반의 Nullability 선언 방식이 도입되었다. 이를 통해 API 명세화가 강력해지고 컴파일 타임에서의 오류 예방이 강화된다고 설명하고 있다.
Project Leyden과 AOT
Project Leyden의 AOT가 적용되어 빌드에 소요되는 시간이 대폭 단축되었다.훈련 실행을 통해 미리 얻은 메서드 사용 데이터를 기반으로 정적 컴파일을 수행하며 이를 통해 JVM의 최대 성능 도달 시간이 8초대로 단축되었고 일부 예제에서는 극단적이지만 1.29초로 단축하였다.
더보기Project Leyden?
클라우드 네이티브 환경에서 기존에 부족하였던 Java의 경쟁력을 높이기 위한 프로젝트로 짧은 시작 시간과 낮은 메모리 사용량을 목표로 한 프로젝트이다. 크게 다음과 같은 기술적 접근이 진행되고 있다.
- AOT(Ahead-of-Time) 컴파일 - 기존 Java는 런타임에 바이트코드를 기계어로 변환하는 JIT(Just-In-Time) 방식을 사용하는데 Leyden은 빌드 타임에 미리 네이티브 코드로 컴파일하여 이를 통하여 애플리케이션이 시작할 때 즉시 최적화된 코드를 실행할 수 있도록 한다.
- CDS(Class Data Sharing) 확장 - JVM이 자주 사용하는 클래스들의 메타데이터를 미리 공유 아카이브에 저장해두어, 여러 JVM 인스턴스가 이를 공유할 수 있게 한다.
- Static Image Generation - 애플리케이션 전체를 하나의 실행 파일로 패키징 할 수 있도록 한다.이는 GraalVM의 Native Image와 유사한 접근법이지만, OpenJDK 생태계 내에서 표준화를 목표로 하고 있다.
Spring Data 4.0
Spring Data에서도 혁신이 있었다.문자열 기반 쿼리와 AOT Repository를 도입한 것인데 아래에서 자세히 설명하겠다.
문자열 기반 쿼리
기존 Criteria API 역시 강력한 쿼리 API 지만 문자열 기반 쿼리는 이보다 약 6배 더 빠르게 동작한다. Spring Data 4.0에선 문자열 기반 쿼리를 기본적으로 지원하며 자동 렌더링 기능을 제공한다. 쿼리 성능 향상을 위해 별다른 코드 변경 없이 업그레이드 만으로 효과를 볼 수 있다.
AOT Repository 도입
쿼리 메서드가 정적으로 생성되기에 디버깅 시 내부 코드 확인이 쉬워졌고 실행 속도 역시 빨라졌다.이는 JPA 사용 시 초기 로딩 속도 개선과 함께 메모리 사용 최적화에도 기여한다.
Spring AI 1.0
SpringBoot 3.5와 함께 릴리즈되어 AI 애플리케이션을 구축할 때 큰 도움을 주는 것을 목표로 한 Spring AI가 SpringBoot 4.0과 더 강력하게 통합된다. AI 모델과 벡터 저장소를 연결하기 쉽도록 구축된 구조는 실무에 적용을 쉽게 만들며 단순한 AI API 호출을 넘어 에이전틱 시스템과 MCP(Model Context Protocol)를 통한 워크플로우 구성까지 돕는다. Spring AI는 대화형 시스템, 문맥 유지 기반 API 연결, 데이터 검색 자동화 등의 목표를 가지고 설계되었다.
마무리
글로만 정리하여 잘 와닫지 않을 수 있지만 JDK 25와 함께 Spring Boot 4.0에선 가시적인 변화가 많이 들어오게 되었다. JSpecify가 도입되며 당장 클래스, 메서드 선언 시부터 조금 모양새가 달라졌으며 대형 애플리케이션 빌드 속도 역시 획기적으로 줄어들었다. 아직은 많이 사용되지 않지만 Spring AI의 정식 릴리즈 역시 중요한 점이다. 이러한 변경점들을 잘 숙지하는 것만으로도 추후 요구사항을 받았을 때 선택의 폭이 넓어지는 효과가 있지 않을까? 이러한 시간에 따른 기술의 변화를 잘 아는 것만이 개발자로서 살아남는 방법인 것 같다.
반응형'Spring' 카테고리의 다른 글
[Spring] Spring Data JPA에서 Entity가 새로운 것인지 판단하는 방법 (0) 2026.01.17 [Spring] Spring에서 Controller 부터 만드는 이유 (0) 2025.09.07 [Spring] Whitelabel Error Page와 Tomcat Error Page (0) 2025.04.26 [Spring] Spring Batch (0) 2025.03.05 [Spring] Spring Cloud (1) 2025.02.05 다음글이전글이전 글이 없습니다.댓글