Java의 Long-Term Support (LTS) 버전이란?
- Java 8 (LTS) 출시일: 2014년 3월
- Java 11 (LTS) 출시일: 2018년 9월
- Java 17 (LTS) 출시일: 2021년 9월
- Java 21 (LTS) 출시일: 2023년 9월
이 버전들은 Oracle과 다른 OpenJDK 배포판에서 장기 지원을 받는 버전이다.
장기 지원(LTS, Long-Term Support) 버전은 Java 개발자와 기업들이 안정적으로 사용할 수 있도록 오랜 기간 동안 지원되는 버전이다.
LTS 버전은 더 긴 기간 동안 업데이트와 보안 패치를 제공하며, 주로 기업 환경에서 많이 사용됩니다.
- LTS (Long-Term Support) 버전:
- 출시 후 최소 8년 동안 지원됩니다.
- 장기적인 안정성과 보안 업데이트가 보장됩니다.
- 주로 기업용 애플리케이션에서 사용됩니다.
- 예: Java 8, Java 11, Java 17, Java 21
- Non-LTS (일반 릴리스) 버전:
- 6개월마다 새로운 기능을 포함한 버전이 릴리스됩니다.
- 각 버전은 약 6개월에서 1년 동안만 업데이트 및 지원됩니다.
- 새로운 기능을 빠르게 적용하고자 하는 개발자나 조직에 적합합니다.
- 예: Java 9, Java 10, Java 12, Java 13, Java 14, Java 15, Java 16, Java 18, Java 19, Java 20
LTS 지원 종료 후의 시나리오
- 공식 지원 종료: Oracle 및 다른 주요 배포판에서 공식적인 업데이트 및 보안 패치 제공이 중단됩니다.
- 보안 취약점 대응: 지원 종료 후 새로운 보안 취약점이 발견되어도 공식적으로 패치가 제공되지 않습니다. 이는 보안 리스크를 증가시킬 수 있습니다.
- 대안: 장기적인 안정성과 보안을 유지하기 위해 최신 LTS 버전으로 업그레이드하는 것이 권장됩니다.
LTS 지원 종료 후의 조치
- 업그레이드: 가장 권장되는 방법은 최신 LTS 버전으로 업그레이드하는 것입니다. 최신 LTS 버전은 지속적인 지원과 보안 패치를 받기 때문에 안전합니다.
- 커뮤니티 지원: 지원 종료 후에도 일부 커뮤니티나 다른 배포판에서 비공식적으로 지원을 제공할 수 있지만, 이는 보증되지 않으며 공식적인 지원만큼 신뢰할 수 없습니다.
- Extended Support: Oracle의 상업적 사용자는 추가 비용을 지불하고 Extended Support 계약을 통해 지원을 연장할 수 있습니다.
결론 : LTS버전이 장기적으로 보안,안정성 등 업데이트 측면에서 장점이 있다.
LTS버전을 사용하는것이 권장되지만
최신 기능과 개선사항을 빠르게 체험해보고 싶다면 Non-LTS를 잠깐만 경험해보는것도 나쁘지 않을것 같다.
Java의 Long-Term Support (LTS) 버전별 특징
Java 8 (LTS)
- 람다 표현식: 함수형 프로그래밍 스타일을 도입하여 코드 간결성과 가독성을 향상시킵니다.
- 스트림 API: 대용량 데이터 처리를 위한 강력한 기능 제공.
- Date and Time API: 새로운 java.time 패키지를 통해 더 나은 날짜 및 시간 처리를 제공합니다.
- Default Methods: 인터페이스에 기본 메서드 구현을 추가하여 인터페이스의 유연성을 높입니다.
- Nashorn JavaScript 엔진: JavaScript를 Java 애플리케이션 내에서 실행할 수 있게 합니다.
- Optional 클래스: null을 처리하는 데 도움이 되는 새로운 클래스입니다.
Java 11 (LTS)
- 새로운 HTTP Client API: HTTP/2와 웹 소켓을 지원하는 표준 API 도입.
- 리팩토링된 Java EE 모듈: JDK에서 Java EE 및 CORBA 모듈 제거.
- Launch Single-File Source-Code Programs: 한 줄 명령으로 Java 파일 실행 가능.
- var 키워드: 지역 변수 타입 추론을 도입하여 코드 간결성 증가.
- ZGC (Z Garbage Collector): 낮은 지연 시간의 새로운 가비지 컬렉터.
- Flight Recorder와 Mission Control: 애플리케이션 성능과 진단을 위한 도구들.
Java 17 (LTS)
- 새로운 기능들: 패턴 매칭, Records, sealed 클래스 등.
- 강화된 신뢰성: 기존 기능들의 성능과 안정성 개선.
- Removed Features: RMI Activation, Applet API 등 여러 구식 기능 제거.
- Strong Encapsulation: 강한 캡슐화를 통해 내부 JDK API에 대한 접근 제한.
- Foreign Function & Memory API (Incubator): 자바에서 외부 메모리와 함수에 접근하는 새로운 방식.
Java 21 (LTS)
- JEP 421: Deprecate Finalization for Removal: 더 이상 사용되지 않는 종료 메서드를 제거할 예정.
- Pattern Matching for switch (Preview): 스위치 문에서 패턴 매칭 사용 가능.
- Vector API: 벡터 연산을 위한 API 제공.
- Foreign Function & Memory API (Second Incubator): 외부 메모리와 함수 접근을 위한 API가 더욱 발전.
- Project Loom (Preview): 경량 스레드를 도입하여 동시성 문제를 보다 효율적으로 해결.
각 버전 선택 시 고려 사항
- Java 8: 기존 레거시 시스템을 유지하거나 최신 기능 필요 없이 안정성을 원하는 경우.
- Java 11: Java 8에서 최신 기능을 필요로 할 때 업그레이드하기 좋은 버전.
- Java 17: 최신 기능과 성능 개선을 원하고, 장기적인 지원을 필요로 하는 경우.
- Java 21: 가장 최신의 기능과 향상된 성능을 필요로 하는 경우.
결론 : LTS버전의 주요 특징을 이해하고, 프로젝트나 조직의 요구에 맞는 버전을 선택하자 !
'개발공부(java, springboot)' 카테고리의 다른 글
MySQL - LIMIT Rows, 조회결과 제한 해제하기. (0) | 2024.06.25 |
---|---|
CORS(Cross-Origin Resource Sharing) 정책? (0) | 2024.06.22 |
인터프리터 언어 ? 컴파일 언어? (0) | 2024.06.02 |