오라클이 자바의 최신 버전인 ‘자바 22(Java 22)’를 출시했다. 개발자들은 자바 22(오라클 JDK 22)가 제공하는 수천 개에 달하는 성능과 안정성, 보안성 관련 개선 사항을 활용할 수 있다. 자바 22는 자바 언어와 자바 API 및 성능, 자바 개발 키트(Java Development Kit, JDK)에 포함된 도구 등에 대한 포괄적인 개선 사항을 제공한다.
최신 JDK는 12개의 JDK 개선 제안(JDK Enhancement Proposals, JEPs)을 통한 업데이트 및 개선 사항을 제공한다.

자바 22의 주요 업데이트 내용은 다음과 같다.
① JEP 447: super(…) 앞의 명령문
개발자가 생성자의 행동을 자유롭게 표현할 수 있는 기능이다. 생성 중인 인스턴스를 참조하지 않는 명령문을 명시적 생성자 호출 앞에 표시할 수 있도록 허용하여 보조 정적 메서드, 보조 중간 생성자, 또는 생성자 인수에 팩토링되어야 하는 로직을 더욱 자연스럽게 배치할 수 있다. 또한 클래스 인스턴스화 도중 생성자가 하향식 순서로 실행된다는 기존 보장을 유지해 하위 클래스 생성자의 코드가 슈퍼 클래스 인스턴스화를 방해하지 못하도록 원천 방지한다. 이 기능은 생성자 내에서의 명시적 생성자 호출 이전에 나타나는 코드를 검증 및 실행할 수 있는 자바 가상머신(JVM)의 기능만을 활용하므로, JVM을 변경할 필요 없이 바로 사용 가능하다.
② JEP 456: 언네임드 변수 및 패턴
언네임드 변수 및 패턴을 통해 자바 언어를 개선해 개발자의 생산성을 향상시킬 수 있다. 변수 선언 또는 중첩 패턴이 요구되지만 실제로는 사용되지 않는 경우 활용 가능한 기능이다. 이 기능을 통해 오류 발생 가능성 감소, 레코드 패턴의 가독성 향상, 모든 코드의 유지 관리 가능성 강화 등이 가능하다.
③ JEP 459
문자열 템플릿(두 번째 미리보기): 런타임 시 연산된 값을 포함한 문자열을 쉽게 표현할 수 있게 해 자바 프로그램의 개발을 간소화하고, 사용자가 제공한 값으로부터 문자열을 구성해 이를 다른 시스템으로 보내 프로그램의 보안성을 높인다. 텍스트와 혼합된 표현식의 가독성도 향상됐고, 중간 문자열 표현을 통한 변환 없이 리터럴 텍스트(literal text) 및 임베디드 표현식(embedded expressions)을 통해 연산된 비문자열 값을 생성할 수 있다.
④ JEP 463
암시적으로 선언된 클래스 및 인스턴스 메인 메서드(두 번째 미리보기): 이 기능을 사용하는 교육자는 자바 개발과 관련된 개념들을 점진적인 방식으로 소개할 수 있고, 학생은 먼저 단일 클래스 프로그램에 대한 간소화된 선언을 작성한 후 프로그래밍 실력이 성장함에 따라 고급 기능을 사용해 프로그램을 원활하게 확장할 수 있다.
⑤ JEP 462
구조화된 동시성(두 번째 미리보기): 구조화된 동시성을 위한 API를 도입하여 개발자가 오류 처리 및 취소를 간소화하고 관찰 가능성을 개선할 수 있도록 지원한다. 이 기능을 활용해 취소 및 종료로 인해 발생하는 일반적인 위험(예: 스레드 유출, 취소 지연)을 방지할 수 있는 동시성 프로그래밍 방식 사용을 장려하고, 동시성 코드의 관찰 가능성을 개선할 수 있다.
⑥ JEP 464
범위가 지정된 값(두 번째 미리보기): 스레드 내에서, 또한 스레드 간에 변경 불가능한 데이터를 공유할 수 있도록 지원함으로써 개발자 프로젝트의 사용 편의성, 이해 가능성, 성능, 견고성을 향상시켜 주는 기능이다.
⑦ JEP 454
외부 함수 및 메모리 API: 자바 프로그램이 자바 런타임 외부의 코드 및 데이터와 상호 운용할 수 있는 API를 도입했다. 이 새로운 API는 외부 함수(JVM 외부의 코드)를 효율적으로 적용하고, 외부 메모리(JVM이 관리하지 않는 메모리)에 안전하게 액세스함으로써 자바 프로그램이 자바 네이티브 인터페이스(JNI) 없이도 네이티브 라이브러리를 호출하거나 네이티브 데이터를 처리할 수 있도록 지원한다.
⑧ JEP 460
벡터 API(7차 인큐베이터): 벡터 연산을 표현할 수 있는 API를 제공한다. 개발자는 지원되는 CPU 아키텍처에서 최적의 벡터 명령어로 런타임에 안정적으로 컴파일되는 벡터 계산을 표현함으로써 상응하는 스칼라 연산보다 뛰어난 성능을 얻을 수 있다.
⑨ JEP 457
클래스-파일 API(미리보기): 자바 클래스 파일의 구문 분석, 생성, 변환용 표준 API를 제공함으로써 개발자의 생산성 향상을 지원한다.
⑩ JEP 458
다중 파일 소스 코드 프로그램 실행: 자바 애플리케이션 런처를 개선해 다수의 자바 소스 코드 파일 형식으로 제공되는 프로그램을 실행할 수 있도록 함으로써 빌드 도구의 구성 여부 및 그 시기를 개발자가 직접 선택할 수 있다.
⑪JEP 461
스트림 수집기(미리 보기): 스트림 API를 개선해 커스텀 중간 작업을 지원함으로써 스트림 파이프라인이 기존의 내장형 중간 작업으로는 달성하기 어려운 방식으로 데이터를 변환할 수 있게 하는 기능이다. 이 기능은 스트림 파이프라인을 더욱 유연하고 표현하기 쉽게 만들고, 커스텀 중간 연산을 통해 무한한 용량의 스트림을 조작할 수 있게 해준다.
⑫ JEP 423
G1용 영역 고정: 수집기를 일시 중지할 필요가 있는 일부 네이티브 라이브러리 호출 중에 일부 가비지 컬렉션(garbage collection)을 수행하도록 허용하여 지연 시간을 줄여 주는 기능이다. 이 기능은 해당 네이티브 라이브러리를 호출하는 과정에서 차단해야 하는 오브젝트를 추적하고, 해당 오브젝트가 포함된 영역만 고정(pinning)하는 방식으로 작동한다.
자바 22는 오픈JDK 및 자바 커뮤니티 프로세스(Java Community Process, JCP)를 통한 오라클 및 전 세계 자바 개발자 공동체 일원들의 지속적인 협업을 기반으로 했다. 또한 자바 관리 서비스(JMS), 자바 런타임 및 애플리케이션을 온프레미스 또는 기타 클라우드에서 관리할 수 있도록 통합 콘솔 및 대시보드를 제공하는 오라클 클라우드 인프라스트럭처(OCI) 네이티브 서비스도 자바 22를 지원한다.
개발자들은 OCI에서 무료로 제공되는 오라클 자바 SE, 오라클 그랄VM(Oracle GraalVM), 자바 SE 구독 엔터프라이즈 성능 팩(Java SE Subscription Enterprise Performance Pack)과 자바 22를 함께 활용해 애플리케이션을 구축 및 배포할 수 있다.
오라클 조지 사브(Georges Saab) 자바 플랫폼 부문 수석 부사장 겸 오픈JDK(OpenJDK) 이사회 의장은 “자바 22가 제공하는 다양한 개선 사항을 통해 더 많은 개발자들이 기능이 풍부하고, 확장 가능하며 안전한 애플리케이션을 빠르고 간단히 구축할 수 있게 될 것”이라며, “자바 22는 애플리케이션 개발을 간소화하고 자바의 범위를 확장하여 모든 숙련도 수준의 개발자가 액세스할 수 있도록 하는 향상된 기능을 제공함으로써 조직과 개발자 모두를 위해 광범위한 새로운 애플리케이션 및 서비스를 만드는 데 도움을 줄 것”이라고 말했다.
관련기사
- 접근성∙확장성∙비용효율성∙편의성 이점 ‘클라우드 서비스’ 지속 성장
- 통찰력과 경쟁력의 기반 ‘빅데이터 및 비즈니스 분석’ 시장 증가세
- 경기 침체∙전쟁∙보안 위협 악재, 위험 분석 시장 ‘호재’
- 오라클, AI∙ML 기반 분산형 DB 클라우드 서비스 출시
- [Success Story] 제주항공, 오라클 클라우드로 데이터 분석 고도화
- 오라클, LLM모델 지원 'OCI 생성AI 서비스' 출시
- [기고] 머신러닝 엔지니어 vs. 데이터 과학자
- '머신러닝', 기술 혁신으로 고속 성장 중
- 신뢰성·안전성 높은 웹3 애플리케이션 개발 돕는 '검증 플랫폼'
- 디자인부터 코드까지 프론트엔드 개발 자동화 솔루션, "빨라진 웹개발"
- 하이브리드 클라우드 환경에서의 오픈소스 보안 취약점 관리
- 오라클 사용자 75% “오라클 DB에 만족, 그러나 업그레이드 이점은 없다”
- 오라클-팔란티어, 데이터 및 AI 솔루션 제공 협력
- 국내 중견기업들, OCI 기반으로 경쟁력 강화
- 인기 높은 자바21...반년 만에 287% 성장
- 멈춤 없는 진화 ‘자바23’
