피드로 돌아가기
Why Floci is built in Java (and why that's the right call in 2026)
Dev.toDev.to
Infrastructure

GraalVM Native Binary 기반 24ms Cold Start 달성

Why Floci is built in Java (and why that's the right call in 2026)

Hector Ventura2026년 5월 16일4advanced

Context

CI 파이프라인 최적화를 위해 초경량 메모리 점유와 극도로 빠른 Cold Start 시간이 필수적인 AWS 에뮬레이터 설계 상황. 기존 Python 기반 솔루션의 거대한 이미지 크기와 느린 기동 속도로 인한 배포 효율 저하 문제를 해결해야 함.

Technical Solution

  • Quarkus의 Build-time Optimization을 통한 Reflection 및 Dependency Injection 사전 처리로 런타임 오버헤드 제거
  • GraalVM Native Image 컴파일을 통해 JVM 없이 실행 가능한 단일 Statically-linked Binary 구조 설계
  • Java 21+ Virtual Threads 도입으로 SQS Long Polling 및 Lambda 컨테이너 등 고동시성 요청 처리 최적화
  • Netty 및 Vert.x 기반의 Non-blocking I/O 스택 채택을 통한 고성능 네트워크 처리 계층 구축
  • Java 25 Compact Object Headers 적용을 통한 메모리 풋프린트 8-12% 추가 절감
  • Distroless 기반의 90MB 초경량 이미지 구성을 통한 CVE 공격 표면 최소화 및 배포 속도 향상

- 초경량 Cold Start가 필요한 서버리스/CI 도구 설계 시 GraalVM Native Image 검토 - 고동시성 I/O 처리가 핵심인 시스템에서 Java 21+ Virtual Threads 도입 고려 - 런타임 오버헤드를 줄이기 위해 Build-time에 메타데이터를 처리하는 프레임워크(예: Quarkus) 분석 - 컨테이너 이미지 최적화를 위해 JRE 포함 여부와 Statically-linked Binary 가능성 확인

원문 읽기