JVM은 자바(Java)의 핵심이라 해도 과언이 아닙니다.
우리가 작성한 자바 코드가 어떻게 실행되는지,
플랫폼 독립성이 어떻게 보장되는지,
모든 답은 JVM에 있습니다.
이 글에서는 JVM이 무엇인지, 내부 구성 요소는 무엇이며,
왜 Java가 JVM 덕분에 강력한 언어인지 쉽게 정리해드립니다.
☕ JVM이란?
JVM (Java Virtual Machine) = 자바 가상 머신
자바 프로그램을 실행하는 엔진이자,
"한 번 작성하면 어디서나 실행된다 (Write Once, Run Anywhere)"라는 자바 철학을 실현해주는 핵심 기술입니다.
🔧 무슨 일을 할까?
JVM의 핵심 역할은 딱 하나:
컴파일된 .class 바이트코드 파일을 실행하는 것
즉, 우리가 작성한 .java 소스 코드는 **JDK의 컴파일러(javac)**에 의해 .class라는 바이트코드로 바뀌고,
이 바이트코드를 운영체제에 맞게 해석해서 실행하는 주체가 바로 JVM입니다.
🔍 JVM 내부 동작 구조 요약
[.class 파일]
↓
Class Loader → 메모리에 로딩
↓
Bytecode Verifier → 유효성 검사
↓
Execution Engine → 실행 (JIT 컴파일 포함)
↓
Native Code → 실제 OS에서 동작
📦 구성 요소 간단 설명
| Class Loader | 클래스 파일 메모리에 로드 |
| Execution Engine | 바이트코드 해석 & 실행 |
| JIT Compiler | 바이트코드를 네이티브 코드로 동적 변환 |
| GC (Garbage Collector) | 불필요한 객체 메모리 자동 정리 |
| Runtime Data Area | 메모리 공간 (Heap, Stack 등) |
🤔 JVM이 왜 중요한가요?
- 플랫폼 독립성: 같은 자바 프로그램이 Windows, Linux, macOS에서 실행 가능
- 메모리 관리 자동화: GC 덕분에 개발자가 직접 메모리 해제할 필요 없음
- 보안성: 바이트코드 검사 및 제한된 실행 환경 제공
📌 용어 간 관계 정리
| JDK | 자바 개발 도구 세트 (JRE + 컴파일러 포함) |
| JRE | 실행 환경 (JVM + 라이브러리) |
| JVM | 실제 실행기 (JRE 내부에 있음) |
'Programming > JAVA' 카테고리의 다른 글
| 🔥 2026년, 자바 버전 뭐 써야 할까? Java 8부터 25 LTS까지 완벽 정리 (0) | 2026.04.30 |
|---|---|
| 📌 List, Set, Map 차이점 1분 컷 — 진짜 외우는 법 알려드림 (3) | 2025.08.04 |
| JDK vs JRE vs JVM 차이점 총정리 (0) | 2025.07.30 |
| ☕ Java 가비지 컬렉션(GC) 동작 원리 쉽게 정리! (0) | 2022.11.21 |
| 📌접근자란? Getter와 Setter 개념과 Java 예제로 쉽게 이해하기 (0) | 2022.10.31 |