본문 바로가기
Spring Boot/etc

Spring boot 3.0 Pre-Update 내용 정리

by Lee David 2022. 11. 14.
반응형

2018년 2월 28일 이후 4년만에 올해 2022년 11월 24일에 Release 버전이 출시될 예정이라고 합니다.

현재는 Spring boot 3.0-rc1 버전(Release Candidate) 베타 최종버전이 배포되어 사용이 가능합니다.

RC 버전은 Release 이전에 최종버전을 테스트 및 베타 버전이라고 보시면 됩니다.


1. 자바 버전 업데이트

Spring boot 3.0 사용시에 java 버전을 17로 올려야된다고 합니다.

Spring boot 3.0에 기반이 되는 코어 라이브러리들의 코드 베이스가 17버전으로 구현되어 있으며 이전 버전들(2.7.x 하위 버전) 또한 java 17에서 동작한다고 하지만 이부분은 각각의 버전마다 차이가 있을수 있고 "will work really well with 17" 이라고 한걸 보면 아직까진 하위 버전 Frame Work에서 java 17 버전을 보장하진 못하는것 같습니다.

 

2. Spring Boot 2.7 버전으로 Update 권장

java 버전 뿐 아니라 3.0 release 버전이 출시되면 2.7 -> 3.0 으로 가는 migration 가이드가 배포될 예정입니다.

2.7보다 하위 버전일 경우 2.5 -> 2.6 -> 2.7 순으로 순차적 migration을 선행 후 3.0으로 갈아타는게 좋을거라고 합니다.

 

3. Deprecated 코드 삭제 예정

Spring boot 3.0 이하 버전에서 명시된 deprecated 코드들이 3.0부터는 제거될 예정입니다.

 

4. spring.config.use-legacy-processing 옵션 삭제

2.4 버전 이후에  ---  개행을 통해 한개의 .properties or .yaml 파일에서 profile을 나눠 사용할 수 있도록 업데이트 되었습니다. 하지만 spring.mvc.pathmatch.matching-strategy 옵션을 사용하면 이전처럼 파일에 profile을 지정할 수 있었던 옵션이 있었습니다.

이후 3.0으로 넘어가게 되면서 더이상 이 옵션을 지원하지 않으니 설정 파일에 대한 주의를 요하고 있습니다.

 

5. javax 8.0 -> jakarta 9.0 으로 이전

Spring Framework 6 버전에서의 업데이트 중 javax EE 8 코드를 jakarta EE 9으로 변경을 권장하고 있습니다.

6버전에서의 Spring에서 지원하는 특정 라이브러리(Hibernate, Thymeleaf, Tomcat, Jetty, Undertow 등...)와의 최신버전 호환성을 위한 조취 입니다.

또한 이와 같은 migration이 없을 경우 Servlet APIs에서 에러가 발생 할 수 있다고 시사합니다.

 

6. Spring Framework 6의 호환성

현재 6버전은 이전 버전들과 호환성에 이슈가 있을수 있습니다.

Spring Integration 등의 외부 jar 파일로 연동되는 로직에 이슈가 발생할수 있어 Spring Frameword 6 호환성 체크 이후 적용이 필요합니다.


Spring boot의 메이저 버전 업데이트이니 만큼 큰 변화가 많을것이라고 생각됩니다.

현재는 rc1 버전에 대한 큰 틀에 대한 변경 사항들 말고 세부적인 내용은 아직 노티되고 있지는 않습니다.

3.0 버전 release 이후에 2.7 버전은 25년 2월까지 그 밖에 하위 버전은 23년 11월까지만 지원한다고 합니다.

커뮤니티에서는 java 17과 3.0-rc1의 마이그레이션중 이슈가 빈번하게 발견되어 메이저 이슈/버그 등이 해결된 3.1 정도되면 사용해 볼까하는 생각도 듭니다.

 

추가되는 내용은 정리해 소식 전해드리겠습니다!

다들 즐코딩 하세요!

반응형