Oracle사는 2021년 9월 14일 프로그래밍 언어인 Java의 최신 버전인 Java 17과 Java 개발자킷트인 Oracle JDK 17을 정식으로 공개하였습니다.
Java 17은 성능 및 안전성, 보안을 강화한 개량 버전으로 개발자의 생산성 향성을 위한 Java언어와 플랫폼에 대해 14가지 개선사항과 변경이 이루어졌습니다. 이런 개선사항과 변경은 JEP(JDK Enhancement Proposal, JDK확장제안)에 정의되어 있습니다.
Java 17은 6개월마다 출시 일정에 따라 8번째 기능 릴리즈이며 3년마다 출시되는 장기지원(LTS, Long Term Support)릴리즈 최신 버전입니다.
Oracle은 Java 17에 대해 OpenJDK Community와 JCP(Java Community Process)를 통한 Oracle 개발자와 전세계 Java 개발자 커뮤니티 회원들의 광범위한 협력의 성과라고 밝히고 있습니다. JDK의 이전 LTS버전인 Java 11 이후 70가지 JEP가 구현되어 있다고 합니다.
Java 17 및 Oracle JDK 17은 Oracle CPU(Critical Patch Updates)일정에 따라 약 8년정도(2029년 9월까지 생산성 및 안정성, 보안업데이트가 제공될 예정입니다.
Oracle사는 LTS 출시 이후, 릴리즈 간격을 3년에서 2년으로 단축한다는 계획을 발표하였습니다. 이는 기업들이 새로운 LTS릴리즈로 마이그레이션에 좀더 유연하게 판단할 수 있도록 하기 위해서 입니다. 새로운 계획에 의하면, 다음 LTS버전은 Java 21이 되고 2023년 9월 출시될 예정입니다.
또한, Oracle JDK와 앞으로 나올 JDK는 새로운 단순화된 라이선스 조건에 제동될 예정입니다. 기업은 Oracle JDK 17을 적어도 3년(새 계획에 따라 다음 LTS버전의 출시 1년후까지) 무료로 사용할 수 있습니다. 한편, Java SE(Java Platform, Standard Edition)을 구입한 기업은 Oracle Java SE지원 및 기업용(GraalVM Enterprise, Java Management Service, Advanced Management Console)에 접근할 수 있습니다.
Java17에서는 Java언의 강화나 라이브러리의 업데이트 및 개선, 새로운 플랫폼 지원 기능의 삭제와 비추천, 미래를 위한 안전성 확보를 하여 기능고 ㅏ미리보기 기능 지원의 개선과 변경이 되었습니다. 중요한 변경사항은 아래와 같습니다.
실드 클래스와 인터페이스는 다른 어떤 클래스나 인터페이스가 이를 확장하거나 구현할 수 있는 부분을 제한하였습니다.
하드웨어 아키텍쳐의 한계를 해결하지 않으려고 했기 때문에 Java언어와 Java 가상머신(JVM)에서 원래 사용되고 있던 정확한 부동소숫점 의미를 부활시켰습니다.
의사 난수 생성기(PRNG, Pseudo Random Number Generator)의 새로운 인터페이스형 및 구현을 제공하며 이 변경은 다양한 PRNG의 상호운용성을 향상시킵니다.
Apple Metal API를 사용하여 macOS를 위한 Java 2D 파이프라인을 구현합니다.
JDK를 macOS/AArch64플랫폼에 이식하고 Arm64기반 Apple Silicon프로세서 환경에서 Java 애플리케이션이 기본적으로 동작되도록 하였습니다.
이거 정리해서 올려볼까 했는데 이미 올리셨네요. 잘 봤습니다~~~
추가적으로 java applet이 완전히 제거되었다는 것도 본 것 같습니다!