오라클, '자바 20' 출시
오라클은 프로그래밍 언어이자 개발 플랫폼인 자바의 최신 버전 '자바 20(JDK 20)을 22일 출시했다. 자바20(오라클 JDK 20)은 수천 개의 성능, 안정성 및 보안 개선사항을 제공하며, 향상된 플랫폼 기능을 통해 개발자들이 생산성을 증대하고 조직 전반의 혁신 및 성장을 추진하도록 돕는다. 오라클은 20일부터 23일까지 캘리포니아 레드우드 쇼어와 온라인으로 개최되는 오라클 개발자 라이브 레벨 업의 자바 개발자의 날 행사에서 최신 자바 20 기능들을 소개했다. 오라클은 6개월의 자바 릴리스 주기를 운영중이다. 자바 20은 2021년 출시된 '자바17' LTS 버전 이후 마지막 일반 릴리스다. 비LTS 버전은 6개월만 기술지원을 제공받을 수 있다. 올 가을 공개될 자바21 버전은 3년의 기술지원을 보장하는 LTS 버전이다. 최신 자바 개발 키트(JDK)는 7개의 JDK 개선 제안(JEP)을 통해 업데이트 및 개선사항을 제공한다. 업데이트의 대부분은 선행 릴리스 기능을 개선한 후속 주요 기능들이다. JDK 20은 스위치 표현식과 구문을 위한 레코드 패턴 및 패턴 매칭인 '오픈JDK 프로젝트 앰버(Amber)'의 언어를 개선했다. 오픈JDK 프로젝트 파나마의 자바가상머신(JVM) 및 네이티브 코드(외부 함수 및 메모리 API, 벡터 API) 간 향상된 상호 연결성, 범위 지정 값, 가상 스레드, 구조화된 동시성 등 프로젝트 룸(Loom) 관련 기능을 제공한다. 자바20은 이를 통해 높은 처리량 및 동시성을 갖춘 애플리케이션들의 작성, 유지 관리 및 모니터링 프로세스를 극적으로 간소화한다. 두번째 미리보기인 레코드 패턴(JEP 432)은 사용자가 레코드 패턴 및 타입 패턴을 추가해 강력하고, 서술적이며, 구성 가능한 데이터 탐색 및 처리 폼을 생성할 수 있게 함으로써 자바 언어를 향상시킨다. 이 기능은 개발자들이 더 정교하고 구성 가능한 데이터 쿼리를 수행할 수 있도록 패턴 매칭을 확장함으로써 개발자 생산성을 높일 수 있다. 네번째 미리보기인 스위치 표현식과 구문을 위한 패턴 매칭(JEP 433)은 스위치 표현식과 구문으로 패턴 매칭을 확장함으로써, 한 개의 표현식을 특정 작업 담당의 다수 패턴들에 대해 테스트할 수 있고, 이를 통해 복잡한 데이터 중심 쿼리를 간결하고 정확하게 표현할 수 있다. 또한 스위치 표현식 및 구문의 표현성 및 적용성을 확장해 개발자 생산성을 향상시킬 수 있다. 프로젝트 룸(Project Loom) 미리보기 및 인큐베이터 주요 기능으로 범위 지정된 값(JEP 429)은 스레드 내 및 여러 스레드에 걸쳐 변경 불가능한 데이터의 공유를 지원한다. 특히 이는 대량의 가상 스레드 사용 시, 스레드 로컬 변수보다 선호되는 기술이다. 사용 편의성, 이해 가능성, 견고성 및 성능을 개선할 수 있다. 두번째 미리보기인 가상 스레드(JEP 436)는 높은 처리량 및 동시성을 갖춘 애플리케이션들의 작성, 유지 관리 및 모니터링 프로세스를 대폭 간소화한다. 이 기능은 개발자가 기존 JDK 도구 및 기술들을 사용해 동시적인 애플리케이션들의 문제 해결, 디버깅 및 프로파일링을 손쉽게 처리할 수 있도록 지원함으로써 애플리케이션 개발을 가속화할 수 있다. 두번째 미리보기인 구조화된 동시성(JEP 437)은 멀티 스레드에서 실행되는 다수의 작업들을 단일 단위의 작업으로 처리함으로써, 멀티 스레드 기반 프로그래밍을 간소화한다. 이를 통해 개발 팀은 오류 처리 및 오차 소거를 간소화하고, 안정성을 개선하며, 관찰 가능성을 향상시킬 수 있다. 프로젝트 파나마의 미리보기 중 하나인 외부 함수 및 메모리 API(JEP 434)로 자바 프로그램 및 자바 런타임 외부 코드 및 데이터 간 상호 운용성을 지원한다. 효율적인 외부 함수(JVM 외부 코드) 실행 및 안전한 외부 메모리(JVM 관리 영역 밖의 메모리) 접근을 통해 자바 프로그램에서 자바 네이티브 인터페이스(JNI) 없이 네이티브 라이브러리 호출 및 데이터 처리를 수행하도록 지원한다. 이를 통해 사용 편의성, 성능 및 안정성을 향상시킬 수 있다. 다섯번째 인큐베이터인 벡터 API(JEP 438)는 런타임에서 안정적으로 컴파일 가능한 다수의 벡터 연산을 지원 CPU 아키텍처에 기반한 벡터 명령 영역에 표현한다. 이를 통해 동급 스케일러 연산 대비 높은 성능을 제공할 수 있다. 자바 20은 오픈JDK 및 자바 커뮤니티 프로세스(JCP)를 통한 오라클 엔지니어들과 전 세계 자바 개발자 커뮤니티 일원들의 폭넓은 협업을 바탕으로 탄생했다. 자바 20은 새로운 향상된 기능들과 더불어, 자바 관리 서비스를 통해 지원된다. 자바 관리 서비스는 오라클 클라우드 인프라스트럭처(OCI)의 네이티브 서비스로서, 온프레미스 또는 프라이빗 및 퍼블릭 클라우드 환경에 위치한 자바 런타임 및 애플리케이션을 관리할 수 있는 단일 창을 제공한다. 오라클은 최근 단일화된 자바 구독 프로그램인 '오라클 자바 유니버설 SE 구독'을 운영하고 있다. 사용량 기반 과금 방식으로 전체 자바 포트폴리오에 대한 우선순위 분류 기반 지원, 그랄VM 엔터프라이즈 권한, 자바 SE 구독 엔터프라이즈 성능 팩, 자바 관리 서비스의 주요 고급 기능들에 대한 접근, 비즈니스 성장 속도만큼 유연한 업그레이드 등을 이용할 수 있다. OCI에서 무료로 이용 가능한 오라클 자바 SE, 그랄VM 엔터프라이즈 및 자바 SE 구독 엔터프라이즈 성능 팩을 통해 개발자들이 오라클 클라우드에서 기존 대비 뛰어난 성능 및 업계 최상의 비용 대비 성능을 갖춘 애플리케이션을 구축 및 배포하도록 지원한다. 오라클의 조지 사브 자바 플랫폼 개발 수석 부사장 겸 오픈JDK 관리 이사회 의장은 “지난 25여 년 동안 자바는 개발자들이 강력하고, 확장 가능하며, 안전한 차세대 애플리케이션을 설계 및 구축하도록 강력하게 지원해 왔다”며 “자바 20의 혁신적인 새로운 기능들은 자바 탄생 이후부터 지금까지 줄곧 자바의 개선을 위해 힘써온 전 세계 자바 커뮤니티의 비전 및 값진 노고를 반영한다”고 강조했다. 그는 “자바는 오라클의 지속적인 자바 기술 리더십 및 커뮤니티 관리 지원을 통해 개발자 생산성 향상을 지원하는 현대 언어 겸 플랫폼으로서 최상의 유용성을 지니게 됐다”고 덧붙였다. 자바 플랫폼은 오픈소스 소프트웨어 버전인 '오픈JDK'와 오라클 상용 버전인 '오라클 JDK'로 이용 가능하다. 오라클은 JCP 핵심 멤버로서 오픈JDK 개발을 주도하며, 오픈JDK에 편의성와 보안성을 높인 '오라클JDK'를 제공한다. 오픈JDK는 오라클JDK의 체험 버전으로 버그 수정과 패치 프로세스를 별도로 운영한다. 자바20은 2천314개의 JIRA 이슈가 수정됐다. 이중 1천595개가 오라클에서 수행했다. 레드햇, SAP, 구글, 텐센트, ARM, 아마존, 인텔, 알리바바, 화웨이 등이 자바20 개발에 기여했다.