컴파일러 + 인터프리터를 합친 방식 — 대표 주자 Java
하이브리드 — JVM · JIT · 바이트 코드
[1단계] Hello.java → javac 컴파일러 → Hello.class (바이트 코드)
↑ 기계 독립적 중간 코드
[2단계] Hello.class → JVM (인터프리트 + JIT 핫스팟) → 기계어 → 실행
| 바이트 코드 | 기계어도 원시 코드도 아닌 중간 형태 · 기계 독립적 |
| JVM | 바이트 코드를 기계어로 변환·실행하는 가상 머신 |
| JIT 컴파일러 | 자주 쓰이는 코드(핫스팟)를 미리 기계어로 변환 → 속도 향상 |
| WORA | Write Once, Run Anywhere — 한 번 작성, 모든 OS에서 실행 |
합격 한 줄
"Java는 순수 컴파일러" / "순수 인터프리터" — 둘 다 틀림. 정답은 하이브리드(javac + JVM + JIT). Python도 .pyc 바이트 코드로 동일 원리.