Spring Boot 버전 별 차이점 (2.2 ~ 3.0) + Spring Cloud
1. 개요
최근 사내에서 Spring Boot 버전을 올리면 어떨까 해서 Spring Boot 버전 및 Spring Cloud 버전 차이점에 대해서 간단하게 알아보고 있다.
프로젝트마다 Spring Boot 사용하는 버전은 각각 다른데, 그러다 보니 가끔 코드를 이쪽저쪽 주워 가다 보면 다른 점들이 있어서 변경해서 사용하곤 했다. 구체적으로 어떤 차이점이 있는지 한번 알아보고 상위 버전으로 마이그레이션을 한다면 어떤 것들을 주의해야 하는지도 알아보자.
일단 사내에서 사용중인 제일 낮은 Spring Boot 버전은 2.1.X 버전 대라 해당 버전 이후 버전들을 확인했다.
2. Spring Boot와 Spring Framework & Java Version
Boot Version Spring Framework Java Version ETC.
Boot Version | Spring Framework | Java Version | ETC. |
2.7 | 5.3.22 지원 | Java 8 ~ Java 17 지원 | Gradle 6.8.X ~ 7.X Tomcat 9 |
2.6 | |||
2.5 | Java 16 지원 | ||
2.4 | 5.3 지원 | Java 15 지원 | |
2.3 | |||
2.2 | 5.2 지원 | Java 13 지원 | Junit5 기본 제공, AssertJ 3.12 |
2.1 |
3. Spring Boot와 Spring Cloud Version
Release Train Boot Version
2021.0.x aka Jubilee | 2.6.x, 2.7.x (Starting with 2021.0.3) |
2020.0.x aka Ilford | 2.4.x, 2.5.x (Starting with 2020.0.3) |
Hoxton | 2.2.x, 2.3.x (Starting with SR5) |
Greenwich | 2.1.x |
Finchley | 2.0.x |
Edgware | 1.5.x |
Dalston | 1.5.x |
Spring Cloud 2020.0 Release Notes · spring-cloud/spring-cloud-release Wiki
4. Spring Boot 주요 버전 별 변경점
만약 2.1.X에서 2.7.X로 버전을 올릴 경우, 이것저것 차이점은 있지만 마이그레이션 시에 가장 주의해야 할 지점은 2.4에서 Configuration이 수정된 부분이다.
개인적으로는 Configuration만 일단 수정한뒤에 돌려가면서 생기는 컴파일 에러를 잡고 QA 한번 태워서 런타임 이슈도 확인해보면 큰 이슈 없이 마이그레이션 가능하지 않을까 싶다.
전반적으로, 버전이 올라갈 수록 Spring Cloud 관련 기능, Docker Build 관련 개선 사항, WebFlux 개선 사항 등이 많았다. 만약 Spring을 이용하여 도커 이미지를 빌드하는 경우, 그리고 Kubernetes를 사용하는 경우 특히 유용한 기능들이 많이 추가되었다.
Spring Boot 버전이 올라가며 함께 올라간 Spring 및 third party 들의 버전 업그레이드로 Spring Data 2021.2, MongoDB 5.0, Kafka 3.0, QueryDSL 5.0, Tomcat 9.0 등이 업그레이드되며 많은 변경사항들이 있다. 또한 액츄에이터, 모니터링, 테스트 관련 등 변경사항, 그리고 Deprecated 된 클래스와 메서드가 많으니 자세한 내용은 링크 별 'Spring Boot 버전별 변경점 세부사항'에서 설명한다.
세부사항에는 사내에서 사용중인 기술 스택을 중심으로 살펴보았기 때문에 일부 누락한 내용들이 있다. (WebFlux 등은 현재 사용하지 않아서 제외함.)
5. Spring Boot 버전별 변경점 세부사항
- Spring Boot 2.2 (요약 링크 / 릴리즈 노트 링크)
- Spring Boot 2.3 (요약 링크 / 릴리즈 노트 링크)
- Spring Boot 2.4 (요약 링크 / 릴리즈 노트 링크)
- Spring Boot 2.5 (요약 링크 / 릴리즈 노트 링크)
- Spring Boot 2.6 (요약 링크 / 릴리즈 노트 링크)
- Spring Boot 2.7 (요약 링크 / 릴리즈 노트 링크)
- Spring Boot 3.0 (요약 링크 / 릴리즈 노트 링크)
6. Spring Boot 관련 참고 자료
- Spring Boot Releast Note ) Home · spring-projects/spring-boot Wiki
- Spring Boot를 Java 9 이상에서 사용 시) Spring Boot with Java 9 and above · spring-projects/spring-boot Wiki
- Spring Boot 2.7 시스템 요구사항) Getting Started
'개발 > Spring' 카테고리의 다른 글
ReflectionTestUtils를 이용한 private 필드와 메서드 단위테스트 (0) | 2024.12.02 |
---|---|
[Spring] Spring Boot v2.7 (0) | 2022.10.18 |
[Spring] Spring Boot v2.6 (0) | 2022.10.17 |
[Spring] Spring Boot v2.4 (0) | 2022.10.15 |
[Spring] Spring Boot v2.3 (0) | 2022.10.14 |