Project Leyden, Babylon, Panama - TornadoVM
- 프로젝트 레이든 (Project Leyden): 자바의 느린 시작 문제를 해결하기 위해 런타임 작업을 훈련 실행(training run) 단계로 옮겨 AOT 캐싱 및 프로파일링을 수행합니다. 🚀
- 레이든의 장점 및 현황: 더 빠른 시작 시간과 적은 메모리 사용을 제공하며, JDK 24에 AOT 캐시, JDK 25에 프로파일 정보 수집 기능이 포함되는 등 점진적으로 일반 출시되고 있습니다. 📈
- 스프링 부트와의 통합: 스프링 부트 3.3 이상에서 AOT 캐시를 지원하며, 우버(Uber) JAR 추출, 훈련 실행, 캐시 활용 배포의 워크플로우를 통해 쉽게 적용 가능합니다. ⚙️
- 훈련 실행의 중요성: 최적의 성능을 위해 훈련 실행은 실제 운영 환경과 유사하게 수행되어야 하며, 간단한 워밍업만으로도 4배 빠른 시작 성능을 얻을 수 있습니다. 🎯
- GraalVM 및 CRaC와의 비교: GraalVM은 더 나은 시작/메모리 성능을 제공하지만 라이브러리 제약이 있을 수 있고, CRaC는 OS 수준 스냅샷으로 코드 변경이 필요하지만, 레이든은 자바 의미론을 유지하며 코드 변경 없이 적용 가능합니다. ⚖️
- ARM 64 (Graviton) 성능 최적화: x86에 비해 자바 성능이 느렸던 ARM 64 아키텍처에 대해 Open JDK 25와 Azul이 루프 언롤링 등 적극적인 최적화를 진행하여 성능 격차를 줄이고 있습니다. ⚡
- 자바와 AI의 결합: 자바는 AI 에이전트 구축 및 LLM과의 상호작용에 활용되며, JVM 자체도 AI를 사용하여 JIT 컴파일러 최적화 패턴을 분석하고 코드 속도를 향상시키고 있습니다. 🧠
- TornadoVM: 모든 JVM 배포판에 플러그인으로 작동하여 GPU에서 자바 프로그램을 가속화하며, 최신 작업으로 LLM을 위한 완전한 자바 추론 엔진(GPU Lama 3 Java)을 개발 중입니다. 🌪️
- Open JDK의 진화 철학: 핵심(core)의 안정성을 최우선으로 하면서도, 내부적으로는 JEP(Java Enhancement Proposals)를 통해 장기 프로젝트를 진행하며 끊임없이 혁신하고 있습니다. 🌳
- 자바 개발의 궁극적 목표: 고객에게 견고한 안정성, 신뢰성, 성능, 낮은 클라우드 비용 및 낮은 탄소 배출량을 제공하는 것을 목표로 합니다. ✅