자바 애플리케이션, CDS와 Layered Jar로 초기 구동 시간 30% 단축!

by DD
2년 전
조회수 5

자바 애플리케이션의 초기 구동 시간 문제를 해결하기 위해 CDS(Class Data Sharing) 기술을 소개함

OpenJDK 12부터 지원되는 CDS를 Spring Boot 3.2 환경에서 적용하는 방법 제시

Layered Jar를 활용하여 초기 실행 시간을 30% 단축하고, 도커 이미지 크기를 줄임

CDS: JVM 시작 시간 단축의 핵심

CDS(Class Data Sharing)는 JVM 시작 시 클래스 로딩 정보를 공유하여 초기 실행 시간을 줄이는 기술이다. OpenJDK 12부터 지원되며, Spring Boot 3.2에서 쉽게 적용 가능하다. 따라서, 애플리케이션 시작 시 클래스 로딩 오버헤드를 줄여 전반적인 성능을 향상시킨다.

Layered Jar: 도커 이미지 최적화

Layered Jar는 애플리케이션을 레이어 형태로 구성하여 도커 이미지 크기를 줄이는 기술이다. 라이브러리사용자 코드를 분리하여, 변경 사항 발생 시 이미지 빌드 시간을 단축한다. 결과적으로, 오토스케일링 환경에서 빠른 배포와 자원 효율성을 확보한다.

CDS와 Layered Jar의 시너지 효과

CDS와 Layered Jar를 함께 사용하면 초기 실행 시간 단축이미지 크기 감소라는 두 가지 이점을 얻을 수 있다. Mybatis와 같은 프레임워크에서 GraalVM Native Image 적용이 어려운 경우, CDS와 Layered Jar는 훌륭한 대안이 된다. 따라서, 자바 애플리케이션 성능 개선을 위한 효과적인 전략을 제공한다.

실행 시간 효율을 위한 클래스 데이터 공유(CDS)와 Layered Jar