Programming/JAVA
🏷️JVM이란? 자바의 핵심 실행 엔진 구조 완벽 정리
추천캐릭터
2025. 7. 30. 09:46
728x90
반응형
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 내부에 있음) |
728x90
반응형