오라클, ‘자바 20’ 발표


[테크수다 기자 도안구 eyeball@techsuda.com] 오라클이 세계적 프로그래밍 언어이자 개발 플랫폼인 자바(Java)의 최신 버전 자바 20(Java 20)을 출시했다.


자바 20(오라클 JDK 20)은 수천 개의 성능, 안정성 및 보안 개선사항을 제공하며, 향상된 플랫폼 기능을 통해 개발자들이 생산성을 증대하고 조직 전반의 혁신 및 성장을 추진하도록 돕는다. 오라클은 3월 20일 - 23일 캘리포니아 레드우드 쇼어와 온라인으로 개최되는 오라클 개발자 라이브 레벨 업(Oracle DevLive Level Up)의 자바 개발자의 날(Java Developer Day) 행사에서 최신 자바 20 기능들을 소개했다.


  • 7개의 JDK 개선 제안(JEP)통해 개발자 생산성 증대, 자바 언어 개선 및 플랫폼 성능, 안정성 및 보안 향상


조지 사브(Georges Saab) 오라클 자바 플랫폼 개발 수석 부사장 겸 오픈JDK(OpenJDK) 관리 이사회 의장은 “지난 25여 년 동안 자바는 개발자들이 강력하고, 확장 가능하며, 안전한 차세대 애플리케이션을 설계하고 구축하도록 강력하게 지원해 왔다”라며 “자바 20의 혁신적인 새로운 기능들은 자바 탄생 이후부터 지금까지 줄곧 자바의 개선을 위해 힘써온 전 세계 자바 커뮤니티의 비전 및 값진 노고를 반영한다. 또한 자바는 오라클의 지속적인 자바 기술 리더십 및 커뮤니티 관리 지원을 통해 개발자 생산성 향상을 지원하는 현대 언어 겸 플랫폼으로서 최상의 유용성을 지니게 되었다”라고 말했다.

최신 자바 개발 키트(Java Development Kit; JDK)는 7개의 JDK 개선 제안(JDK Enhancement Proposals; JEP)을 통해 업데이트 및 개선사항을 제공한다. 업데이트의 대부분은 선행 릴리스 기능을 개선한 후속 주요 기능들이다.


JDK 20은 오픈JDK 프로젝트 앰버(Amber, 스위치 표현식과 구문을 위한 레코드 패턴 및 패턴 매칭)의 개선된 언어, 오픈JDK 프로젝트 파나마(Panama)의 자바 버추얼 머신(JVM) 및 네이티브 코드(외부 함수 및 메모리 API, 벡터 API) 간 향상된 상호 연결성, 프로젝트 룸(Project Loom) 관련 주요 기능(범위가 지정된 값, 가상 스레드, 구조화된 동시성)을 제공한다. 이를 통해 높은 처리량 및 동시성을 갖춘 애플리케이션들의 작성, 유지 관리 및 모니터링 프로세스를 극적으로 간소화할 예정이다.


S&P 글로벌 마켓 인텔리전스의 제이 라이먼(Jay Lyman) 선임 애널리스트는 “오늘날 기업조직들은 리소스를 최대한 현명하고 효율적으로 사용해야 한다는 점증하는 압박에 직면하고 있다. 이를 위해서는 개발자가 애플리케이션 개발 간소화와 동시에 기업 IT 보안 및 규제준수 목표 달성을 도울 수 있는 툴을 모색해야 한다.”라며 “디지털 트랜스포메이션 선도 기업들은 제품의 시장 출시 기간 단축 및 민첩성에 그 어느 때보다 주목하고 있다고 입을 모으고 있다. 이와 같은 목표를 달성하기 위해서는 자사 조직의 애플리케이션 개발 이니셔티브를 가속화할 수 있는 보다 효과적인 도구가 필요하다.”라고 말했다.


오라클은 예측 가능한 릴리스 일정을 통해 6개월을 주기로 신규 자바 릴리스의 주요 기능들을 제공한다. 이를 통해 혁신 흐름을 꾸준히 조성할 뿐 아니라, 플랫폼 성능과 안정성 및 보안 개선사항을 지속 제공함으로써 모든 규모의 조직 및 업계에 걸쳐 자바 도입률 증대에 기여한다.


자바 20에서 제공되는 주요 업데이트는 다음과 같다.


언어 업데이트 및 개선사항


  • JEP 432: 레코드 패턴(두 번째 미리 보기): 사용자가 레코드 패턴 및 타입 패턴을 추가해 강력하고, 서술적이며, 구성 가능한 데이터 탐색 및 처리 폼을 생성할 수 있게 함으로써 자바 언어를 향상시킨다. 이 기능은 개발자들이 더 정교하고 구성 가능한 데이터 쿼리를 수행할 수 있도록 패턴 매칭을 확장함으로써 개발자 생산성을 높일 수 있다.
  • JEP 433: 스위치 표현식과 구문을 위한 패턴 매칭(네 번째 미리 보기): 스위치 표현식과 구문으로 패턴 매칭을 확장함으로써, 한 개의 표현식을 특정 작업 담당의 다수 패턴들에 대해 테스트할 수 있고, 이를 통해 복잡한 데이터 중심 쿼리를 간결하고 정확하게 표현할 수 있다. 또한 스위치 표현식 및 구문의 표현성 및 적용성을 확장해 개발자 생산성을 향상시킬 수 있다.


프로젝트 룸(Project Loom) 미리보기 및 인큐베이터 주요 기능


  • JEP 429: 범위가 지정된 값(인큐베이터): 스레드 내 및 여러 스레드에 걸쳐 변경 불가능한 데이터의 공유를 지원한다. 특히 이는 대량의 가상 스레드 사용 시, 스레드 로컬 변수보다 선호되는 기술이다. 사용 편의성, 이해 가능성, 견고성 및 성능을 개선할 수 있다.
  • JEP 436: 가상 스레드(두 번째 미리 보기): 자바 플랫폼에 도입된 경량의 가상 스레드를 통해 높은 처리량 및 동시성을 갖춘 애플리케이션들의 작성, 유지 관리 및 모니터링 프로세스를 대폭 간소화한다. 또한 본 기능은 개발자가 기존 JDK 도구 및 기술들을 사용해 동시적인 애플리케이션들의 문제 해결, 디버깅 및 프로파일링을 손쉽게 처리할 수 있도록 지원함으로써 애플리케이션 개발을 가속화할 수 있다.
  • JEP 437: 구조화된 동시성(두 번째 미리 보기): 멀티 스레드에서 실행되는 다수의 작업들을 단일 단위의 작업으로 처리함으로써, 멀티 스레드 기반 프로그래밍을 간소화한다. 이를 통해 개발 팀은 오류 처리 및 오차 소거를 간소화하고, 안정성을 개선하며, 관찰 가능성을 향상시킬 수 있다.


프로젝트 파나마(Project Panama) 미리보기 주요 기능


  • JEP 434: 외부 함수 및 메모리 API(두 번째 미리 보기): 자바 프로그램 및 자바 런타임 외부 코드 및 데이터 간 상호 운용성을 지원한다. 또한 효율적인 외부 함수(JVM 외부 코드) 실행 및 안전한 외부 메모리(JVM 관리 영역 밖의 메모리) 접근을 통해 자바 프로그램에서 자바 네이티브 인터페이스(Java Native Interface; JNI) 없이 네이티브 라이브러리 호출 및 데이터 처리를 수행하도록 지원한다. 이를 통해 사용 편의성, 성능 및 안정성을 향상시킬 수 있다.
  • JEP 438: 벡터 API(다섯 번째 인큐베이터): 런타임에서 안정적으로 컴파일 가능한 다수의 벡터 연산을 지원 CPU 아키텍처에 기반한 벡터 명령(vector instructions) 영역에 표현한다. 이를 통해 동급 스케일러(scaler) 연산 대비 높은 성능을 제공할 수 있다.


자바 20은 오픈JDK 및 자바 커뮤니티 프로세스(Java Community Process; JCP)를 통한 오라클 엔지니어들과 전 세계 자바 개발자 커뮤니티 일원들의 폭넓은 협업을 바탕으로 탄생했다. 자바 20은 새로운 향상된 기능들과 더불어, 자바 관리 서비스(Java Management Service)를 통해 지원된다. 자바 관리 서비스는 오라클 클라우드 인프라스트럭처(Oracle Cloud Infrastructure; OCI)의 네이티브 서비스로서, 온-프레미스(사내구축형) 또는 프라이빗 및 퍼블릭 클라우드 환경에 위치한 자바 런타임 및 애플리케이션을 관리할 수 있는 단일 창을 제공한다.


자바 고객 및 글로벌 생태계 지원


오라클 자바 유니버설 SE 구독(Oracle Java Universal SE Subscription)은 사용량 기반 과금 방식으로 고객들에게 업계 최상의 지원을 제공한다. 이러한 수준 높은 지원에는 전체 자바 포트폴리오에 대한 우선순위 분류 기반 지원, 그랄VM 엔터프라이즈(GraalVM Enterprise)에 대한 권한, 자바 SE 구독 엔터프라이즈 성능 팩(Java SE Subscription Enterprise Performance Pack), 자바 관리 서비스의 주요 고급 기능들에 대한 접근, 비즈니스 성장 속도만큼 유연한 업그레이드가 포함된다. 이러한 지원 서비스들은 IT 조직들이 복잡성, 비용 및 보안 리스크의 감소를 지원한다. 뿐만 아니라, OCI에서 무료로 이용 가능한 오라클 자바 SE, GraalVM 엔터프라이즈 및 자바 SE 구독 엔터프라이즈 성능 팩을 통해 개발자들이 오라클 클라우드에서 기존 대비 뛰어난 성능 및 업계 최상의 비용 대비 성능을 갖춘 애플리케이션을 구축 및 배포하도록 지원한다.


자바 및 자바 글로벌 생태계에 대한 상세 정보는 다음의 웹페이지들에서 확인할 수 있다.


  • Dev.java: 자바 학습을 지원하는 공식 포털
  • Inside.java: 오라클 자바 팀 구성원들의 뉴스 및 관점
  • Java YouTube: 자바 학습을 지원하는 공식 유튜브 채널


추가 자료



[테크수다 기자 도안구 eyeball@techsuda.com]