공식 발표

오라클, ‘자바 22’ 발표

자바 언어 개선과 개발 플랫폼의 성능 및 안정성, 보안성 향상을 위한 12개의 JDK 개선 제안 제공

2025년 자바원(JavaOne) 행사 미국 샌프란시스코 베이 지역(San Francisco Bay Area)에서 재개

대한민국2024년 3월 25일
Java 22

오라클은 세계 1위 프로그래밍 언어이자 개발 플랫폼인 자바의 최신 버전인 ‘자바 22(Java 22)’ 출시를 발표했다. 개발자는 자바 22(오라클 JDK 22)가 제공하는 수천 개에 달하는 성능 및 안정성, 보안성 관련 개선 사항을 활용해 생산성을 향상시키고 혁신을 추구하며, 기업의 신속한 성장을 지원할 수 있다. 자바 22는 자바 언어와 자바 API 및 성능, 자바 개발 키트(Java Development Kit, JDK)에 포함된 도구 등에 대한 포괄적인 개선 사항을 제공한다.

오라클 조지 사브(Georges Saab) 자바 플랫폼 부문 수석 부사장 겸 오픈JDK(OpenJDK) 이사회 의장은 "자바 22가 제공하는 다양한 개선 사항을 통해 더 많은 개발자들은 기능이 풍부하고, 확장 가능하며 안전한 애플리케이션을 빠르고 간단히 구축할 수 있게 돼 전 세계 기업의 비즈니스 성장에 기여할 것"이라며, “자바 22는 애플리케이션 개발을 간소화하고 Java의 범위를 확장하여 모든 숙련도 수준의 개발자가 액세스할 수 있도록 하는 향상된 기능을 제공함으로써 조직과 개발자 모두를 위해 광범위한 새로운 애플리케이션 및 서비스를 만드는 데 도움을 줄 것이다.”라고 말했다.

최신 JDK는 12개의 JDK 개선 제안(JDK Enhancement Proposals, JEPs)을 통한 업데이트 및 개선 사항을 제공한다. JDK 22는 오픈JDK 프로젝트 앰버(Project Amber)의 언어 개선 사항(super[…] 앞의 명령문, 언네임드(Unnamed) 변수 및 패턴, 문자열 템플릿, 암시적으로 선언된 클래스 및 인스턴스 메인 메서드), 프로젝트 파나마(Panama)의 개선 사항(외부 함수 및 메모리 API, 벡터 API), 프로젝트 룸(Loom) 관련 기능(구조화된 동시성, 범위가 지정된 값), 코어 라이브러리 및 도구 기능(클래스-파일 API, 다중 파일 소스 코드 프로그램 실행 및 스트림 수집기), 성능 업데이트(G1용 영역 고정) 등을 제공한다.

IDC 아르날 다야라트나(Arnal Dayaratna) 소프트웨어 개발 담당 연구 부사장은 " 자바는 지난 30년에 가까운 기간에 걸쳐 다양한 사용 사례에 대응하기 위한 복잡한 개발 작업들을 지원할 수 있는 그 어느 때보다도 중요한 플랫폼이 되었다."며 "자바는 이러한 다재다능함과 포괄적 도구 모음을 통해 대규모의 프로덕션급 미션 크리티컬 애플리케이션 개발을 지원하며, 이러한 특성에 힘입어 생성형 AI와 같은 혁신적 사용 사례를 위한 핵심 기술로 자리매김했다."라고 말했다.

자바 22의 주요 업데이트 내역은 다음과 같다.

 

프로젝트 앰버 기능

  • JEP 447: super(…) 앞의 명령문: 개발자가 생성자의 행동을 자유롭게 표현할 수 있는 기능이다. 생성 중인 인스턴스를 참조하지 않는 명령문을 명시적 생성자 호출 앞에 표시할 수 있도록 허용하여 보조 정적 메서드, 보조 중간 생성자, 또는 생성자 인수에 팩토링되어야 하는 로직을 보다 자연스럽게 배치할 수 있다. 또한 클래스 인스턴스화 도중 생성자가 하향식 순서로 실행된다는 기존 보장을 유지해 하위 클래스 생성자의 코드가 슈퍼 클래스 인스턴스화를 방해하지 못하도록 원천 방지를 지원한다. 또한 이 기능은 생성자 내에서의 명시적 생성자 호출 이전에 나타나는 코드를 검증 및 실행할 수 있는 자바 가상 머신(JVM)의 기능만을 활용하므로, JVM을 변경할 필요 없이 바로 사용 가능하다.
  • JEP 456: 언네임드 변수 및 패턴:  언네임드 변수 및 패턴을 통해 자바 언어를 개선해 개발자의 생산성을 향상시킬 수 있다. 변수 선언 또는 중첩 패턴이 요구되지만 실제로는 사용되지 않는 경우 활용 가능한 기능이다. 해당 기능을 통해 오류 발생 가능성 감소, 레코드 패턴의 가독성 향상, 모든 코드의 유지 관리 가능성 강화 등의 이점을 누릴 수 있다.
  • JEP 459: 문자열 템플릿(두 번째 미리보기): 런타임 시 연산된 값을 포함한 문자열을 쉽게 표현할 수 있게 해 자바 프로그램의 개발을 간소화하고, 사용자가 제공한 값으로부터 문자열을 구성해 이를 다른 시스템으로 보내 프로그램의 보안성을 높인다. 추가로, 텍스트와 혼합된 표현식의 가독성이 향상됐고, 중간 문자열 표현을 통한 변환 없이도 리터럴 텍스트(literal text) 및 임베디드 표현식(embedded expressions)을 통해 연산된 비문자열 값을 생성할 수 있다.
  • JEP 463: 암시적으로 선언된 클래스 및 인스턴스 메인 메서드(두 번째 미리보기): 자바 프로그래밍에 대한 진입 장벽을 크게 낮춰 주는 기능이다. 대규모 프로그램 개발을 위해 설계된 자바의 고급 언어 기능을 모두 알지 못하는 학생들이 자신의 첫 번째 자바 프로그램을 더 일찍 개발할 수 있도록 지원한다. 해당 기능을 사용하는 교육자는 자바 개발과 관련된 개념들을 점진적인 방식으로 소개할 수 있고, 학생은 먼저 단일 클래스 프로그램에 대한 간소화된 선언을 작성한 후 프로그래밍 실력이 성장함에 따라 보다 고급 기능을 사용해 프로그램을 원활하게 확장할 수 있다.
 

프로젝트 룸(Loom) 기능

  • 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를 지원한다. 자바 22의 신기능에 대한 보다 자세한 정보는 자바 22 기술 블로그 포스트에서 확인할 수 있다.

 

클라우드에 담긴 혁신 기술로 전 세계 자바 생태계 지원

자바 22를 지원하는 최초의 하이퍼스케일 클라우드 중 하나인 OCI 클라우드에 자바 애플리케이션을 배포하면 더욱 향상된 성능과 효율성, 혁신 기술, 비용 절감 효과 등을 누릴 수 있다. 개발자는 OCI에서 무료로 제공되는 오라클 자바 SE, 오라클 그랄VM(Oracle GraalVM), 자바 SE 구독 엔터프라이즈 성능 팩(Java SE Subscription Enterprise Performance Pack)과 자바 22를 함께 활용해 최적화된 비용 대비 성능을 갖추고 보다 빠르고 효과적으로 실행되는 애플리케이션을 구축 및 배포할 수 있다.

오라클 자바 유니버설 SE 구독(Oracle Java Universal SE Subscription) 프로그램은 업계 최고의 고객 지원을 제공하는 사용량 기반 과금 방식의 서비스다. 전체 자바 포트폴리오에 대한 우선순위 분류 기반 지원, 그랄VM 사용 권한, 자바 SE 구독 엔터프라이즈 성능 팩, JMS의 고급 기능 사용 권한, 고객사의 비즈니스 현황에 비례하여 업그레이드할 수 있는 유연성 등을 제공한다. 또한 이 서비스는 IT 조직의 복잡성 관리, 비용 절감, 보안 위험 방지에 기여한다.

 

2025년 자바원(JavaOne) 행사 재개

2025년 미국 샌프란시스코 베이 지역에서 글로벌 자바 커뮤니티를 위한 대표적인 행사인 자바원(JavaOne)이 다시 개최될 예정이다. 3월 17일부터 20까지 4일 동안 미국 캘리포니아 레드우드 쇼어(Redwood Shores)에서 진행되는 자바원 2025는 참가자들에게 자바 개발 트렌드에 대한 최신 정보를 학습하고 오라클 자바 전문가 및 업계 전문가들과 교류할 수 있는 기회를 제공할 예정이다. 자바원 2025 관련 상세 정보는 인사이드 자바(Inside Java) 블로그 포스트를 통해 확인할 수 있다.

인용문

에브렌 탄(Evren Tan) TJC 커뮤니티 리드는 "튀르키예 자바 커뮤니티(TJC)의 역동적인 생태계는 오라클의 지속적인 지원에 힘입어 끊임없이 발전하고 있다."라며 "TJC는 개발자의 작업 효율성을 향상시켜주는 자바 22의 다양한 최신 기능을 활용해 터키 개발자들의 자바 활용 능력 개발을 더욱 적극적으로 지원할 예정이다. 또한 전 세계의 자바 개발자들도 TJC의 활동에 동참해 자바라는 언어의 생명력의 근간인 따뜻한 커뮤니티 정신을 보여줄 것을 기대한다."라고 말했다.

배더 엘 호우라리(Badr El Hourari) 엑스허브(xHub) 설립자 겸 CIO는 "모로코를 비롯한 아프리카 지역에서 프로그래밍 언어, 플랫폼, 개발자 커뮤니티로서 자바의 인기는 지속적으로 높아지고 있다."며 "자바 22에는 JEP 463과 같이 초보 자바 개발자의 자바 활용을 돕기 위한 혁신 기술들이 포함돼 있다. 자바 개발의 진입 장벽을 낮추기 위한 오라클 자바 개발팀의 노력에 감사한다. 언어를 단순화하여 신세대 프로그래머들의 자바 학습 과정이 더욱 간단해졌다. 모로코의 자바 개발자들도 매년 개최되는 데복스 모로코(Devoxx Morocco) 컨퍼런스를 통해 자바의 중요성을 지속적으로 알리고 있다. 올해 10월 2~4일 진행되는 컨퍼런스에도 가능한 한 많은 개발자들이 참가해 자바 커뮤니티에서 가장 영향력 있는 세계적 인사들과 만날 수 있기를 기대한다."고 말했다.

젯브레인(JetBrains)의 말라 굽타(Mala Gupta) 자바 개발자 옹호자(Java developer advocate)는 "자바 22는 학생, 시니어 개발자, 모험적인 자바 애호가, 성능 및 안정성을 함께 요구하는 기업 조직에 이르는 모든 사용자들을 위한 기능 모음을 제공한다. 이는 매우 놀라운 성과"라며 "자바는 인스턴스 메인 메서드와 암시적 클래스 등을 통해 초기 코드 작성과 관련된 작업을 끊임없이 줄여 나가는 미니멀리즘 접근 방식을 채택하여 초보 개발자들의 진입 장벽을 낮추고 있다. 자바 22는 생성자 개편(super[...] 앞 명령문) 기능을 통해 자바는 책임감 있는 혁신을 추구한다는 사실을 다시 한번 입증했다. 기존의 코드를 유지하면서 자바 버전 1.0부터 존재했던 언어적 제약을 완화했다는 사실 또한 매우 흥미로운 부분이다. 젯브레인은 자사의 통합 개발 환경인 IntelliJ IDEA 2024.1 버전의 자바 22 관련 지원을 통해 개발자들이 다양한 신기능을 보다 간단히 사용할 수 있도록 지원하는 준비를 마쳤다."고 말했다.

오라클 톰 스나이더(Tom Snyder) 엔터프라이즈 클라우드 네이티브 자바 엔지니어링 부문 부사장은 "헬리돈(Helidon) 팀은 가상 스레드가 발표되자마자 그 가치를 인정했다. 헬리돈 4를 활용해 가상 스레드를 기본 지원하도록 헬리돈 웹 서버를 재작성한 결과, 성능이 훨씬 향상되고 개발자 생산성도 높아졌다."라며, "자바 22를 통해 가상 스레드의 성능이 다시 한번 향상되고 모든 헬리돈 사용자들에게 큰 혜택을 안겨줄 것으로 전망된다."라고 말했다.

오라클 쿠시 멘사(Kuassi Mensah) 제품 관리 부문 디렉터는 “오라클 데이터베이스는 최근 혁신적인 자바 기술과 원활한 통합을 통해 전 세계에서 현대적인 애플리케이션 개발 및 운영을 위한 가장 수준 높은 데이터베이스 기술을 제공하고 있다.”며, “오라클 자바 데이터베이스 연결성 드라이버(The Oracle Java Database Connectivity, JDBC) 재작성을 통해 자바 가상 스레드를 원활하게 지원할 수 있게 됐다. 또한 오라클 데이터베이스 23c의 새로운 운영 파이프라인 기능과 자바 가상 스레드 간의 결합을 기반으로 자바 애플리케이션의 엔드투엔드 확장성을 개선하도록 지원한다.”라고 말했다.

자바 및 자바의 글로벌 생태계에 대한 자세한 내용은 아래에서 찾아볼 수 있다.

  • Dev.java: 자바 학습을 위한 공식 포털
  • Inside.java: 오라클 자바 팀이 제공하는 뉴스 및 관점
  • Java YouTube: 자바 학습용 비디오를 제공하는 공식 자바 유튜브 채널
 

추가 자료

문의처

  • 한국오라클 홍보 담당 케첨

  • skr-oracle@ketchum.com
  • 정미영 이사 / 010-2050-3834 조서겸 과장 / 010-9498-8808 심정현 과장 / 010-7376-1123

오라클 소개

오라클은 완전한 통합 애플리케이션 제품군과 보안 역량, 자율운영 기술 기반의 오라클 클라우드 인프라스트럭처를 제공한다. 오라클(NYSE: ORCL)에 관한 자세한 정보는 www.oracle.com 에서 확인 가능하다.

상표

Oracle, Java, MySQL및 NetSuite는 Oracle Corporation의 등록된 상표이다. NetSuite는 클라우드 컴퓨팅의 새로운 시대를 개척한 최초의 클라우드 회사다.