자바 애플리케이션, 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는 훌륭한 대안이 된다. 따라서, 자바 애플리케이션 성능 개선을 위한 효과적인 전략을 제공한다.