자바 LTS 버전별 특징
자바 LTS 버전별 특징
AI 요약
Java LTS는 Java 8, 11, 17 버전으로, 장기적인 지원을 제공함. Java 8은 람다식과 스트림 API를 도입해 함수형 프로그래밍을 지원했으며, Java 11은 모듈 시스템과 HTTP 클라이언트 API를 제공함. 최신 LTS인 Java 17은 Sealed 클래스, 패턴 매칭, 레코드 등 언어 기능을 강화하여 코드의 가독성 및 안정성을 높임.
자바 LTS
- Java의 LTS 버전으로는 Java 8, Java 11, Java 17 버전이 있다.
- LTS란 Long-Term Support라는 뜻으로 장기적인 지원을 받을 수 있는 버전을 말한다.
- 이러한 LTS 버전은 엔터프라이즈 환경 및 장기적인 프로젝트에 적합하며, 오랜 기간 동안 지원과 업데이트가 제공된다.
JAVA 8
- Java 8 은 2014년 3월에 출시된 첫 번째 LTS 버전이다. 2025년 3월 까지 상용 지원을 받을 수 있다.
Oracle 에서 기술적인 지원과 업데이트 제공을 마쳤지만, 일부 엔터프라이즈 벤더가 확장된 지원을 제공할 수 있다.
1. 람다식
- 코드를 간결하게 작성할 수 있고 함수형 프로그래밍 스타일을 지원한다.
2. 스트림(Stream) API
- 컬렉션 데이터를 처리하기 위한 편리한 메소드를 제공하여 코드의 가독성과 유지보수성 향상
3. 날짜와 시간 API 개선
- Joda-Time 라이브러리에서 영감을 받아 새로운 날짜와 시간 관련 API를 도입
JAVA 11
- Java 11 은 2018년 9월에 출시된 두번째 LTS 버전이다. 2024년 9월까지 상용 지원을 받을 수 있다.
- Oracle 은 Java 11부터는 상업용 사용자에게 유료지원을 제공하고 있다.
OpenJDK 커뮤니티에서는 무료로 Java 11의 지원을 계속하고 있다.
모듈 시스템(Java Platform Module System, JPMS) 도입
- 애플리케이션의 모듈화를 지원하여 종속성을 관리하고 애플리케이션의 보안성과 유지보수성 향상
HTTP 클라이언트 API
- HTTP/1.1 및 HTTP/2를 지원하는 비동기 HTTP 통신을 위한 표준 API를 제공한다.
신뢰성 있는 가비지 걸렉션(Garbage Collector, GC)
- Epsilon GC 및 ZGC를 포함한 새로운 GC 알고리즘을 도입하여 성능과 확장성을 개선했다.
JAVA 17
Java 17은 2021년 9월에 출시된 최신 버전이다. 2029년 9월까지 상용 지원을 받을 수 있다.
1. Sealed 클래스와 인터페이스
- Sealed 클래스와 인터페이스는 해당 클래스나 인터페이스를 상속하거나 구현할 수 있는 클래스를 제한하는 기능
- 이를 통해 API의 불변성과 안정선 유지, 코드의 가독성과 유지 보수성 향상 가능
2. 패턴 매칭(Pattern Matching)
- 패턴 매칭은 instanceof 연산자와 switch문을 보다 강력하고 표현력 있게 개선한 기능
- 패턴 매칭은 객체의 구조를 확인하고 해당하는 패턴에 따라 실행 코드를 선택할 수 있는 방법을 제공한다.
- 코드를 간걸하게 작성 가능하다.
3. 기본적인 레코드(Records)
- 레코드는 불변적인 데이터를 저장하는 클래스를 생성하는 데 사용되는 새로운 종류의 클래스이다.
- 자바 17에서는 이러한 레코드를 더욱 쉽게 작성하고 사용할 수 있도록 기능을 개선했다.
- 레코드는 데이터를 저장하고 비교하기 위한 메서드와 생성자 등을 자동으로 생성한다.
- 코드의 간결성과 가독성을 높일 수 있다.
4. 지역 변수 유형 추론의 확장
- 지역 변수 유형 추론의 확장이 이루어졌다.
- 기본적으로 var 키워드를 사용하여 지역 변수의 유형을 추론 가능하다.
- 람다식, 익병 클래스, 열거형 크래스의 변수 선언에도 var 키워드를 사용가능하다.
5. 새로운 스트림 메서드
- 스트림 API 에 몇가지 새로운 메서드가 추가
- takeWhile()
- 주어진 조건을 만족하는 요소를 포함하는 스트림 반환
- 조건을 만족하지 않는 첫번째 요소를 만나면 그 시점에서 스트림 처리를 중단
- dropWhile()
- 주어진 조건을 만족하지 않는 요소를 버리고, 조건을 만족하는 이후의 요소로 구성된 스트림을 반환
- 조건을 만족하는 첫 번째 요소를 만나면 그 이후의 모든 요소를 포함한 스트림을 생성한다.
- 특정 조건을 만족하는 요소만 선택하거나 제외 가능하다.
기타 개선사항
- 성능 개선
- 가비지 컬렉터 개선
- 새로운 암호화 알고리즘 지원
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.