개요
사이드 프로젝트를 진행함에 있어서 Java와 SpringBoot version 선택에 대해 고민하게 되었다. 그 과정에서 어떤 version을 사용해야 할지 찾아가게된 과정에 대해 기술한다. 결국, SpringBoot는 3.5.1ver Java는 21을 선택했다. version 선택에 많은 시간을 소비할 수 없어 chat GPT와 함께 알아봤다.
java version? (17 vs 21 vs 24)
🔍 이유 정리
Java 버전 | LTS (장기 지원) 여부 | 안정성 | 최신 기술 | 추천 여부 |
17 | ✅ LTS | 매우 안정적 | 조금 옛날 | ⚪️ (무난) |
21 | ✅ LTS | 안정적 | 최신 기능도 포함 | ✅ 가장 추천 |
24 | ❌ LTS 아님 | 실험적 | 가장 최신 | ❌ (개발용 테스트엔 OK, 실무에선 비추) |
🧠 왜 Java 21이 좋은 선택일까?
- ✅ LTS (Long Term Support): 오랫동안 지원되기 때문에 기업이나 실무 프로젝트에서도 많이 씀
- ✅ 최신 기능들 추가됨: Record, Switch 개선, Virtual Threads 등등
- ✅ 스프링 부트 3.x 이상과 잘 호환됨
- ✅ Java 17보다 빠르고 개선된 점 많음
❗Java 24는 왜 피해야 할까?
- ❌ LTS가 아니라 안정성 부족
- ❌ 일부 라이브러리나 프레임워크와 호환 이슈 발생 가능
- 🔬 테스트용/개인 학습용으론 괜찮지만 실무 프로젝트엔 적합하지 않음
✨ 추천 요약
목적 | 추천 Java 버전 |
처음 배우는 중 | ✅ Java 21 |
실무용, 취업 준비용 | ✅ Java 21 |
신기술 빠르게 써보고 싶을 때 | 🔄 Java 24 (비추천) |
오래된 회사 코드 유지보수용 | ⚪ Java 17 |
spring boot version? ( 3.5.1 )
🔍 각 버전별 설명
버전 | 출시 시기 | 상태 | Java 호환 | 특징 및 메모 |
4.0.0 | 🚧 미출시 or 베타 | 사용 X | 미확정 | 현재 존재하지 않거나 실험적입니다. 무시! |
3.5.1 | ✅ 최신 (2025년 5월) | 안정 최신버전 | ✅ Java 21+ | 가장 최신 LTS, 기능/성능 안정화 완료 |
3.5.0 | 2025년 4월 말 | 안정 | ✅ Java 21 | 3.5.1이 더 나으므로 굳이 선택할 이유 없음 |
3.4.7 | 구버전 | 지원 중 | ✅ | 보안 업데이트 정도만 받는 중 |
3.3.13 | 오래됨 | 유지보수 중단 | ⚠️ 일부 호환 | Spring Boot 3.3은 현재 권장되지 않음 |
✅ 왜 3.5.1을 선택해야 할까?
- 📌 가장 최신 안정버전 (최신 기능 + 버그 패치 포함)
- 🚀 Java 21과 공식 호환
- 🔒 보안 업데이트 포함
- 📚 커뮤니티/문서도 가장 많고 활발함
✨ 추천 요약
상황 | 추천 버전 |
새 프로젝트 시작 | ✅ 3.5.1 |
Java 21 사용 예정 | ✅ 3.5.1 |
Java 17만 써야 하는 환경 | ⚪ 3.1.x ~ 3.4.x도 가능 (되도록 최신 유지) |
실험/최신 기능 빠르게 써보고 싶을 때 | ✅ 3.5.1 (Virtual Thread 등 지원 포함) |
'🌃 TIL' 카테고리의 다른 글
[TIL] 단순 참조 vs 외래키: 트랜잭션 처리에서의 선택과 고민 (0) | 2025.04.28 |
---|---|
[TIL] 도메인 기반 3-Tier 구조에서 SRP 고민(feat. Facade 개념 적용) (0) | 2025.03.11 |
[TIL] 3계층 구조의 단일 책임 원칙(SRP) 위배 (0) | 2025.02.16 |
[TIL] REST API 설계 (feat. 계층형 vs 필터링 구조) (0) | 2025.02.09 |
[TIL] 검색+필터 기능 설계 시 고려할 점 (feat. DB, API) (1) | 2025.01.21 |