https://www.youtube.com/watch?v=CQi3SS2YspY
배경
- 카카오 T 계정 서비스(가입/휴면/정지/탈퇴)는 개인정보 암호화, 높은 TPS, 빠른 응답속도가 필수인 Java 11 + Spring Boot 2 서비스.
- Kubernetes 환경에서 배포 직후 응답 지연 문제 발생(TPS 3800~5000, 최대 10초 지연).
개념 정리
Java 실행 구조와 JVM
.java
→ .class
바이트코드 → JVM이 인터프리터/컴파일 방식으로 기계어 변환 실행.
- JVM(Java Virtual Machine)은 플랫폼 독립적으로 바이트코드를 실행해 Write Once, Run Anywhere를 실현.
- 실행 속도 향상을 위해 JIT(Just-In-Time) 컴파일러 사용.
JIT 컴파일러
- 자주 호출되는 메서드를 런타임에 기계어로 변환해 캐시에 저장, 반복 해석 비용 제거.
- Oracle JVM에서는 Hotspot 컴파일러로 불림.
- Tiered Compilation (단계별 최적화)
- Level 0: 인터프리터 (최적화 없음)
- Level 1~3: C1 컴파일러 (점진적 최적화 및 프로파일링)
- Level 4: C2 컴파일러 (최대 최적화, 기계어 캐시에 저장)
Warm-Up이란?
- JVM이 충분한 프로파일링 정보를 모아 C2 단계까지 최적화된 기계어를 생성하도록 시작 단계에서 자주 쓰는 API를 먼저 실행해 두는 절차.
- 초기에 캐시가 비어있어 응답 지연 발생 → Warm-Up으로 초기 성능 보장.
문제 상황
- CPU/메모리/네트워크 문제 없음 → 원인은 애플리케이션 내부 로직 + JIT 미적용.