지난 5월 20일(현지 시각) 오픈JDK 커뮤니티에서 오라클의 자바 플랫폼 그룹 수석 아키텍트 마크 라인홀드는 레이든 프로젝트를 시작한다고 밝혔다. 그에 따르면 정적 이미지는 애플리케이션에서 파생된 독립 실행형 프로그램으로, 해당 애플리케이션만 실행한다. 정적 이미지는 로드할 수 있는 클래스와 관련해 폐쇄된 환경(closed world)이다. 런타임 시 이미지 외부에서 클래스를 로드할 수 없으며, 클래스를 동적으로 생성할 수도 없다. 이 폐쇄된 환경의 제약 조건은 특히 기존의 자바 프레임워크 및 라이브러리가 기반으로 하는 런타임 리플렉션과 클래스 로딩 기능에서 자바의 자연적 역동성을 엄격하게 제한한다.
라인홀드는 “모든 애플리케이션이 이 제약 조건에 적합한 것은 아니며, 모든 개발자가 이 제약 조건을 기꺼이 받아들이는 것도 아니다. 처음부터 폐쇄된 환경의 제약 조건을 채택하는 대신, 제약 조건의 스펙트럼을 탐색하고 이것이 어떤 최적화를 가능하게 하는지 알아내는 점진적인 접근 방식으로 추진할 예정이다”라고 말했다.
그 결과 최적화는 폐쇄된 환경의 제약 조건보다 약할 수 있다. 하지만 (제약 조건이 약해) 최적화는 더 넓은 범위의 기존 코드에 적용될 수 있어 유용하다고 라이홀드는 설명했다. 아울러 이 프로젝트는 핫스팟 JVM(HotSpot JVM), C2 컴파일러(C2 compiler), 애플리케이션 클래스-데이터 공유(application class-data sharing), 제이링크 코드 도구(jlink code tool)를 포함해 JDK의 기존 구성요소를 활용할 예정이다. ciokr@idg.co.kr