Spring Boot 3 + GraalVM Native Image를 사용하면 JVM 없이 실행되는 바이너리를 생성할 수 있으며, 기동 속도가 약 93.5% 향상된다 (4.7초 → 0.3초). 설정은 build.gradle.kts에 native 플러그인 추가, application.yaml에 AOT 활성화, GRAALVM_HOME 환경변수 설정 후 ./gradlew nativeCompile로 빌드. 다만 컴파일 시간 12~13분, 환경 의존성, 미지원 라이브러리 존재, 운영 레퍼런스 부족 등의 이유로 실제 운영 도입에는 추가 검토가 필요하다.
Read
Latest Posts · Page 1 of 1
Java 21(OpenJDK) 기반으로 Z GC (-XX:+UseZGC, -XX:+ZGenerational) 를 사용하며 Generational ZGC를 적용한다. Heap은 -Xms2048m / -Xmx3072m / -XX:SoftMaxHeapSize=2560m, MetaSpace는 -XX:MetaspaceSize=512m / -XX:MaxMetaspaceSize=768m으로 설정한다. GC 로그는 파일로 저장(filecount=3, filesize=100m), OOM 발생 시 Heap Dump를 자동 생성하도록 설정한다.
ReadJDK에서 제공하는 기본 HotSwap 기능은 디버깅 편의 수준으로 제한적이며, 클래스 구조 변경(필드/메소드 추가 등)은 지원하지 않는다. 따라서 실무에서 자유로운 클래스 리로딩을 하려면 JVM 한계를 보완하는 별도 도구나 에이전트 기반 방식이 필요하다.
Read