오라클의 자바(Java)는 전 세계적으로 널리 사용되는 객체 지향 프로그래밍 언어이자 개발 플랫폼이다. 플랫폼 독립성과 뛰어난 안정성, 확장성을 제공하여 기업 애플리케이션부터 모바일 앱, 클라우드 서비스까지 다양한 영역에서 사용되고 있다.

자바의 지속적인 성공은 커뮤니티의 활발한 기여와 오라클의 안정적 관리, 보안 패치 및 성능 개선을 배경으로 한다. 또한, 자바는 점점 더 다양해지는 기업의 최신 애플리케이션 개발 요구를 지원하기 위해 진화를 거듭하고 있다.

오라클이 자바 23(오라클 JDK 23)을 출시했다. 자바 23은 개발자 생산성을 개선하고 혁신을 추진하기 위한 수천 가지 개선 사항을 제공한다. 또한, 플랫폼 성능, 안정성 및 보안이 향상되어 기업의 비즈니스 성장 가속화를 지원한다.

자바 23은 개발자를 위한 개선 사항에 더해 기업  활용성도 높였다. 예를 들면, 자바 23은 자바 관리 서비스(Java Management Service, JMS) 9.0의 최신 GA에서 지원된다. 오라클 클라우드 인프라스트럭처(OCI) 네이티브 서비스인 JMS 9.0은 통합 콘솔 및 대시보드를 제공하여 온프레미스(사내구축형) 혹은 클라우드 환경에서 자바 런타임 및 애플리케이션을 관리할 수 있다. JMS 9.0은 이외에도 다양한 사용성 개선 사항을 제공하며, 그랄(Graal) 컴파일러가 추가된 오라클 JDK 23는 최고 성능의 미세 조정 및 개선을 위한 더 많은 옵션을 제공한다. 그랄 컴파일러는 바이트코드를 최적화된 머신 코드로 변환해 주는, 자바로 작성된 동적 JIT(Just-In-Time) 컴파일러다.

자바 23은 자바 언어, 런타임, 라이브러리, 자바 개발 키트(JDK)에 포함된 도구 전반에 대한 개선 및 기능 향상을 제공한다. 자바 23의 주요 업데이트는 다음과 같다.

프로젝트 앰버로 통한 언어 기능

JEP 455(패턴, 인스턴스오브(instanceof), 스위치의 기본 타입)는 패턴 매칭, 인스턴스오브, 스위치 사용 시 개발자가 직면하는 기본 유형 관련 제한 사항을 제거하고, 모든 패턴 컨텍스트에 대해 기본 유형 패턴을 허용하여 패턴 매칭을 개선한다. 또한 인스턴스오브 및 스위치를 확장해 모든 기본 유형과 호환될 수 있도록 한다.

JEP 476(모듈 가져오기 선언)는 모듈이 내보내는 모든 패키지를 개발자가 신속하고 손쉽게 가져오게 해 개발자 생산성을 개선한다. 이때 모듈 자체에 코드를 가져올 필요가 없다. 이 기능은 모든 개발자가 모듈러 라이브러리를 간편하게 재사용할 수 있도록 하며, 초보자의 경우 패키지 계층 내 각각의 위치를 익히지 않고도 서드파티 라이브러리와 기본 자바 클래스를 쉽게 사용할 수 있다.

JEP 477(암시적으로 선언된 클래스 및 인스턴스 메인 메서드)은 대규모 프로그램 개발을 위해 설계된 언어 기능을 이해할 필요 없이 첫 자바 프로그램을 작성할 수 있도록 하여 자바 프로그래밍 진입 장벽을 낮추고 학습 및 기술 개발을 원활하게 해 준다. 이를 통해 교육자는 점진적인 방식으로 관련 개념을 소개할 수 있고, 학생은 먼저 단일 클래스 프로그램에 대한 간소화된 선언을 작성한 후 프로그래밍 실력이 성장함에 따라 보다 고급 기능을 사용해 프로그램을 원활하게 확장할 수 있다. 숙련된 자바 개발자들 역시 대규모 프로젝트를 위해 설계된 도구를 사용하지 않고도 소규모 프로그램을 간결하게 작성할 수 있다.

JEP 482(유연한 생성자 본문)는 명시적인 생성자 호출 super(..), this(..) 등의 앞에 명령문이 나타나게 해 개발자 생산성을 높여준다. 명령문은 생성 중인 인스턴스를 참조할 수 없지만 다른 생성자를 호출하기 전에 해당 필드를 초기화할 수 있다. 이 과정은 메서드가 재정의될 때 클래스의 안정성을 향상시킨다. 이를 통해 개발자는 생성자의 동작을 보다 자유롭게 표현할 수 있으며, 클래스 인스턴스화 중에 생성자가 하향순으로 실행된다는 기존 보장도 유지할 수 있다.

라이브러리

JEP 466(클래스-파일 API)는 자바 클래스 파일의 구문 분석(parsing), 생성, 변환용 표준 API를 제공한다.

JEP 469(벡터 API)는 지원되는 CPU 아키텍처에서 벡터 명령어로 런타임에 안정적으로 컴파일되는 벡터 계산을 표현하는 API를 도입했다. 개발자는 동등한 스칼라 계산보다 우수한 성능을 달성할 수 있다.

JEP 473(스트림 수집기)는 스트림 API를 개선해 스트림 파이프라인이 기존의 내장형 중간 연산으로는 달성하기 어려운 방식으로 데이터를 변환할 수 있는 커스텀 중간 연산을 지원한다. 이 기능은 스트림 파이프라인을 더욱 유연하고 표현하기 쉽게 만들고, 커스텀 중간 연산을 통해 무한한 용량의 스트림을 조작할 수 있어 보다 효율적으로 자바 코드를 읽고, 쓰며 유지 관리할 수 있다.

JEP 480(구조화된 동시성)은 구조화된 동시성을 위한 새로운 API를 통해 동시 프로그래밍을 간소화하여 동시성 코드의 유지관리 용이성, 안정성, 관찰 가능성을 개선할 수 있다. 구조화된 동시성은 다양한 스레드에서 실행되는 관련 작업 그룹을 단일 작업 단위로 통합하여 스레드 유출 및 취소 지연 등 취소 및 종료로 인해 발생하는 일반적인 위험을 제거한다.

JEP 481(범위가 지정된 값)은 스레드 내 또는 스레드 간에 변경 불가능한 데이터를 공유할 수 있게 한다.

성능 및 런타임 업데이트

JEP 474(ZGC, 세대별 모드를 기본 모드로 전환)은 개발자가 Z 가비지 컬렉터(ZGC) 모드의 기본 모드를 세대별 모드로 전환하여 효율성을 높인다. 모드 전환으로 두 개의 다른 모드 지원에 필요한 리소스 및 유지 관리 비용을 줄일 수 있다.

도구

JEP 467(마크다운 문서화 주석)은 자바독(Javadoc) 문서화 주석을 HTML 및 자바독 @-태그로만 작성하는 대신 마크다운(Markdown)으로 작성할 수 있게 한다. 마크다운 문법을 문서화 주석에 사용할 수 있어 개발자는 API 문서화 주석을 소스 형태로 더 쉽게 작성하고 읽을 수 있으며, 기존 문서화 주석의 해석에 부정적인 영향을 미치지 않는다.

스튜어드십(Stewardship)

JEP 471(향후 삭제를 위한 sun.misc.unsafe의 메모리 접근 메서드 제거)은 향후 릴리스에서 제거될 예정인 sun.misc.unsafe의 메모리 접근 메서드에 애플리케이션이 직간접적으로 의존하는 지점을 파악하여 개발자에게 간소화된 툴셋을 제공한다.

자바 23은 오라클 자바 SE(Oracle Java SE), 오라클 그랄VM(Oracle GraalVM), 자바 SE 구독 엔터프라이즈 퍼포먼스 팩(Java SE Subscription Enterprise Performance Pack)을 추가 비용 없이 OCI를 통해 제공한다. 

오라클 자바 유니버설 SE 구독(Oracle Java Universal SE Subscription) 프로그램은 전체 자바 포트폴리오에 대한 우선순위 분류 기반 지원, 오라클 그랄VM 사용 권한, 자바 SE 구독 엔터프라이즈 퍼포먼스 팩, JMS의 고급 기능 접근 권한, 기업의 비즈니스 현황을 반영한 업그레이드 유연성 등이 포함된다. 이 서비스는 IT 기업의 복잡성 관리, 보안 위험 완화, 비용 절감에 도움을 준다.

오라클은 최근 개최된 오라클 클라우드월드(Oracle CloudWorld)에서 오라클 코드 어시스트(Oracle Code Assist)가 자바용으로 가장 먼저 최적화될 것이라고 발표했다. 오라클 코드 어시스트는 자바 애플리케이션의 구축을 손쉽게 만들어 주는 AI 코딩 동반 툴이며, OCI에서 실행되는 오라클 코드 어시스트 서비스는 C, C++, 고(Go), 자바스크립트(JavaScript), PL/SQL, 파이썬(Python), 루비(Ruby), 러스트(Rust)에서도 곧 이용할 수 있다.

한편 2025년 샌프란시스코 베이 지역에서 글로벌 자바 커뮤니티를 위한 대표적인 행사인 자바원이 다시 개최될 예정이다. 2025년 3월 18일부터 20일(현지 시각)까지 캘리포니아 레드우드 쇼어(Redwood Shores)에서 진행되는 자바원 2025는 자바 관련 최신 소식을 직접 듣고 오라클의 자바 전문가 및 업계 권위자들과 교류할 수 있는 기회이다. 

오라클 조지 사브(Georges Saab) 자바 플랫폼 부문 수석 부사장 겸 오픈JDK(OpenJDK) 이사회 의장은 “자바 23은 개발자의 애플리케이션 구축 및 제공 속도와 효율성을 높이기 위해 설계된 광범위한 신기능 및 도구들을 통해 개발 팀과 그들이 속한 조직이 혁신을 주도하고 비즈니스 성장을 촉진한다.”고 설명했다.

관련기사

저작권자 © 지티티코리아 무단전재 및 재배포 금지