들어가며
안녕하세요. LINE Plus에서 태국 LINE BK 채널 서버 개발 및 운영 업무를 맡고 있는 이석재입니다. LINE BK에서는 지난 9월에 LINE BK 보험 중개 서비스를 출시했습니다. 이 서비스는 Spring Boot 2를 기반으로 개발하기 시작해서 올해 초에 Spring Boot 3로 마이그레이션했는데요. 서비스를 정식 오픈한 후에는 현실적으로 대규모 변경 작업이 어렵다는 점과, Spring Boot 2의 OSS 지원이 올해 11월 24일에 EOL(end of life)을 맞이한다는 점(참고)을 고려해 마이그레이션을 결정하고 진행했습니다. 현재 안정적으로 운영되고 있으며, 이 프로젝트에서 쌓은 경험을 바탕으로 최근에는 여신(lending) 서비스를 위한 API 서버를 Spring Boot 3 환경으로 이관하는 작업을 진행하고 있습니다.
본 글에서는 저희가 Spring Boot 2 환경에서 Spring Boot 3 환경으로 이관하는 과정에서 경험한 내용을 공유하려고 합니다. 작년 11월에 출시된 Spring Boot 3는 내부적으로 상당한 변화가 있었습니다(참고). 이에 따라 Spring Boot와 함께 사용하는 다른 Spring 프로젝트들도 버전 업그레이드를 진행하면서 다양한 신규 기능이 추가되는 등의 크고 작은 변화가 있었는데요. 모든 변경 사항을 다루는 것은 어렵겠지만, 팀에서 운영하는 7개의 모듈을 업그레이드하는 과정에서 중요하다고 판단한 내용을 중점으로 다뤄보려고 합니다. 이 글이 마이그레이션을 계획하고 계신 분들에게 참고할 만한 가이드가 되길 바라며 시작하겠습니다.
이 글은 Spring Boot 2.7 버전에서 3.1 버전으로 업그레이드하는 과정을 기반으로 작성했습니다. 빌드 도구는 Gradle을 기준으로 삼았으며, 예제 코드는 Java를 기본으로 Kotlin과 함께 제공합니다.
Spring Boot 마이그레이션
Spring Boot는 다음과 같은 순서로 마이그레이션을 진행했습니다.
- 사전 준비
- Java 버전을 최소 17 이상으로 업데이트
- Spring Boot 버전을 3으로 업데이트
- Java EE를 Jakarta EE로 변경
application.yml
혹은application.properties
수정- 지원이 중단된(deprecated) API 수정