Spring Framework나 Java 등을 사용하다 보면 버전 옆에 낯선 용어들이 붙어 있는 걸 자주 보게 됩니다. 이 용어들은 소프트웨어의 개발 및 배포 단계를 나타내는 것으로, 업계 전반에서 공통적으로 사용하는 개념입니다.
소프트웨어는 개발 → 테스트 → 배포의 큰 흐름을 가지고 있습니다. 각 단계마다 붙는 이름이 다릅니다.
"아직 개발 중인 버전이고 언제든 바뀔 수 있습니다."
spring-boot-3.5.0-SNAPSHOT
"주요 기능 개발은 끝났지만, 아직 마감이 완벽하지 않습니다."
"기능은 완성됐고, 피드백을 받고 싶은 상태입니다."
"이번 버전이 최종 후보입니다. 치명적 버그가 없는 경우 이대로 출시합니다."
spring-boot-3.3.0-RC1
spring-boot-3.3.0-RC2 ← 마지막 RC 통과 후 GA로 이동
"정식 출시 버전입니다. 이제 모두가 사용할 수 있습니다."
"지금 이 시점에서 가장 권장하는 버전입니다."
Spring Boot 버전 목록 예시:
3.4.3 (CURRENT) ← 지금 당장 시작한다면 이것을 사용하는것을 권장
3.3.9 ← 아직 지원은 되지만 CURRENT는 아님
3.2.x ← 곧 지원 종료 예정
"이 버전은 장기간 지원합니다."
Java 8, Java 11, Java 17, Java 21 ← 모두 LTS 버전
Spring Boot 3.x ← LTS 트랙
| 구분 | 일반 버전 지원 | LTS 지원 |
|---|---|---|
| Java (OpenJDK 기준) | 6개월 | 8년 + |
| Node.js | 6개월 | 30개월 |
버전 번호 X.Y.Z의 각 자리는 다음을 의미합니다.
3 . 3 . 6
↑ ↑ ↑
MAJOR MINOR PATCH
PATCH 업그레이드 → 거의 항상 안전 ✅
MINOR 업그레이드 → 대부분 안전, 릴리즈 노트 확인 권장 🔍
MAJOR 업그레이드 → 마이그레이션 가이드 필독, 충분한 테스트 필요 ⚠️
PATCH는 자주, MINOR는 신중하게, MAJOR는 프로젝트 일정을 잡고 계획적으로 진행하는 것이 일반적입니다.
| 상황 | 권장 버전 |
|---|---|
| 실서비스 (Production) | GA, 가능하면 LTS |
| 신기술 미리 사용해보기 | RC |
| 기여 (Contributing) 또는 최신 기능 탐색 | SNAPSHOT |