Spring 3.0 준비하기

지난 2022년 5월 24일. 스프링 블로그에 글이 개제되었다. 내용은 바로 스프링 3.0 을 대비하라는 것. 그리 길지 않은 내용이니 간단하게 정리해보며, 바뀌는 점, 대응해야하는 점들을 정리해보고자 한다.

1. 핵심 내용

  • 2018년 2월 28일 처음 스프링 2.0 이 등장한 이래로 4년간 2.x 버전들을 유지해왔다. 그간 릴리즈만 95회를 기록하며 열심히 유지보수해왔다.

  • 이제 스프링 팀은 2022년 11월 스프링 3.0을 발표하며 새로운 변화를 도모하고자 한다. 굵직한 변경사항들은 대략 다음과 같다.

    • 스프링 프레임워크 6.0

    • 자바 버전은 최소 17이상이 될 것

    • 스프링 부트 3.0은 EE 8 (javax.*) 가 아닌 Jakarta EE 9 (jakarta.*) api 를 사용한 첫번재 버전이 릴리즈 될 것

2. 준비하기

  1. 자바 17로 버전 업그레이드 하기

    1. 이미 스프링 2.x 버전들도 충분히 java 17과 호환이 잘 되니, 스프링부트 3.0 릴리즈까지 기다리지 말고 미리미리 업그레이드 할 것을 추천한다.

  2. 만약 스프링부터 2.7 이전버전을 사용하고 있다면 2.7로 업그레이드 하기

    1. 스프링은 항상 한 스텝씩 버전 업을 하는 것이 한번에 버전을 뛰어 넘는 것보다 수월하다.

      1. 2.5 -> 2.6 -> 2.7 (recommended) / 2.5 -> 2.7 (not recommended)

    2. 스프링 2.7에서 3.0으로 마이그레이션 하는 것은 공식 문서를 통해 가이드를 제공할 예정이지만, 이전 버전에 대해서는 이미 2.7로 업그레이드 한 상태라고 가정할 것임.

  3. deprecated 코드 확인하기

    1. 통상적으로 12개월의 여유기간을 두고 deprecated 코드는 사라진다.

    2. 하지만 스프링 3.0의 경우는 기존에 deprecated 된 코드를 모두 삭제할 예정이다. 따라서 미리미리 준비할 것!

  4. application.properties -> application.yaml 로 변경하기

    1. 스프링 2.4부터 application.properties 를 application.yaml 형식으로 바꾸었다.

    2. 지금까지는 spring.config.use-legacy-processing 옵션을 통해 이전 properties 를 사용할 수 있었지만, 3.0부터는 지원하지 않는다.

  5. 스프링부트 2.6부터는 PathPatternParser 가 기본설정으로 사용되는데, 설정을 통해 AntPathMatcher 를 사용해왔던 옛날 프로젝트들이 있다. 3.0 에서도 여전히 사용 가능하긴 하겠지만, 변경하는 것을 강력히 추천한다.

  6. third party library 가 Jakarta EE 9 와 호환되는지 체크하기

  7. 스프링 integration 을 제공하는 서드파티 jar 를 사용하고 있다면 스프링 프레임워크 6.0 과 호환가능한지 확인하기

이런 변경 사항들은 꼼꼼히 체크하여 어플리케이션 상 문제가 발생하지 않도록 하자.

Last updated