JVM 클래스로더는 어떻게 JVM을 지탱하는가
Parent Delegation의 보안 원칙부터 바이트코드 검증, 심볼릭 참조 해결, 언로딩 조건, 커스텀 ClassLoader 구현, ClassLoader 격리까지 — JVM 클래스 로딩 전 계층을 추적한다.
총 9편 · 순서대로 읽기를 권장
Parent Delegation의 보안 원칙부터 바이트코드 검증, 심볼릭 참조 해결, 언로딩 조건, 커스텀 ClassLoader 구현, ClassLoader 격리까지 — JVM 클래스 로딩 전 계층을 추적한다.
Heap의 세대별 구조부터 TLAB, 스택 프레임, Metaspace, Runtime Constant Pool, 객체 레이아웃, Off-Heap까지 JVM 메모리 모델 전체를 하나의 설계 철학으로 추적한다.
클래스 파일 바이너리 구조부터 invoke 명령어의 다형성 구현, 람다의 invokedynamic, 바이트코드 조작까지 — JVM 추상 기계의 설계 철학을 추적한다.
Interpreter의 즉시 실행부터 JIT 계층화 컴파일, OSR, Deoptimization, Intrinsics까지 — HotSpot이 성능을 끌어올리는 원리를 추적한다.
GC Roots와 Reachability Analysis부터 Serial/Parallel/CMS/G1/ZGC까지, JVM 가비지 컬렉터의 설계 결정과 그 대가를 추적한다.
CPU 캐시 불일치와 명령어 재정렬이 만드는 가시성 문제부터, Happens-Before·volatile·final·Memory Barrier가 이를 해결하는 방식까지, JMM 전체 철학을 추적한다.
Object Monitor부터 Virtual Thread까지, JVM이 스레드 경쟁을 처리하는 방식과 그 비용을 단계별로 추적한다.
플래그 분류부터 힙 산정 공식, GC Ergonomics, 프로파일링, 메모리 누수 추적, JMH 벤치마킹까지 — JVM 성능 최적화의 원칙을 추적한다.
Object Header의 Mark Word 구조부터 Compressed Oops, String Pool, Unsafe API, Reflection Inflation, Java Agent의 바이트코드 변환, JNI 경계 비용까지, JVM이 객체를 다루는 저수준 메커니즘을 추적한다.