[Java 개념노트 02] JDK, JRE, JVM 차이 쉽게 정리
안녕하세요. Java 개념노트 시리즈 두 번째 글입니다.
지난 글에서는 자바가 어떤 언어인지, 그리고 자바가 어디에 사용되는지 간단히 알아보았습니다. 이번 글에서는 자바를 공부할 때 자주 등장하는 용어인 JDK, JRE, JVM의 차이를 쉽게 정리해보겠습니다.
1. JDK, JRE, JVM은 왜 알아야 할까?
자바를 처음 설치하려고 하면 이런 단어들을 자주 보게 됩니다.
- JDK
- JRE
- JVM
- 컴파일
- 바이트코드
처음에는 이름도 비슷해서 헷갈릴 수 있습니다. 하지만 자바 프로그램이 어떻게 만들어지고 실행되는지 이해하려면 이 세 가지 개념을 알아두는 것이 좋습니다.
쉽게 말하면
JDK는 개발 도구, JRE는 실행 환경, JVM은 자바 프로그램을 실제로 실행해주는 가상 머신입니다.
2. JVM이란?
먼저 JVM부터 알아보겠습니다. JVM은 Java Virtual Machine의 약자입니다. 우리말로는 자바 가상 머신이라고 합니다.
자바 프로그램은 운영체제에서 바로 실행되는 것이 아니라 JVM 위에서 실행됩니다. 즉, JVM은 자바 프로그램과 운영체제 사이에서 중간 역할을 합니다.
자바 프로그램
↓
JVM
↓
운영체제
↓
컴퓨터 하드웨어
윈도우, 맥, 리눅스는 서로 다른 운영체제입니다. 하지만 각 운영체제에 맞는 JVM이 설치되어 있다면 같은 자바 프로그램을 실행할 수 있습니다.
핵심 포인트
JVM 덕분에 자바는 운영체제가 달라도 실행할 수 있습니다. 그래서 자바의 대표적인 특징으로 Write Once, Run Anywhere라는 말이 나옵니다.
3. JRE란?
JRE는 Java Runtime Environment의 약자입니다. 우리말로는 자바 실행 환경이라고 합니다.
JRE는 자바 프로그램을 실행하기 위해 필요한 환경입니다. JRE 안에는 JVM과 자바 프로그램 실행에 필요한 여러 라이브러리가 포함되어 있습니다.
JRE
├─ JVM
└─ 자바 실행에 필요한 라이브러리
즉, 자바 프로그램을 실행만 하고 싶다면 JRE가 필요합니다. 하지만 자바 프로그램을 직접 만들고 컴파일하려면 JRE만으로는 부족합니다.
4. JDK란?
JDK는 Java Development Kit의 약자입니다. 우리말로는 자바 개발 도구 모음이라고 할 수 있습니다.
JDK는 자바 프로그램을 개발하기 위해 필요한 도구들을 포함하고 있습니다. 대표적으로 자바 코드를 컴파일하는 javac가 있습니다.
JDK
├─ JRE
│ ├─ JVM
│ └─ 실행 라이브러리
└─ 개발 도구
├─ javac
├─ java
└─ 기타 개발 도구
자바를 공부하거나 개발하려면 보통 JDK를 설치합니다. 왜냐하면 JDK 안에 실행 환경과 개발 도구가 함께 들어 있기 때문입니다.
처음 공부하는 사람은?
자바를 처음 공부한다면 JRE가 아니라 JDK를 설치하면 됩니다. JDK를 설치해야 자바 코드를 작성하고 컴파일하고 실행할 수 있습니다.
5. JDK, JRE, JVM 차이 한눈에 보기
세 가지 개념을 표로 정리하면 다음과 같습니다.
| 구분 | 의미 | 역할 |
| JVM | Java Virtual Machine | 자바 바이트코드를 실행한다. |
| JRE | Java Runtime Environment | 자바 프로그램을 실행할 수 있는 환경을 제공한다. |
| JDK | Java Development Kit | 자바 프로그램 개발에 필요한 도구를 제공한다. |
간단히 말하면 다음과 같이 이해할 수 있습니다.
JDK = 개발 도구 + JRE
JRE = 실행 환경 + JVM
JVM = 자바 프로그램 실행 담당
6. 자바 코드가 실행되는 과정
자바 코드는 바로 실행되는 것이 아닙니다. 먼저 컴파일 과정을 거친 뒤 JVM에서 실행됩니다.
1. Hello.java 파일 작성
↓
2. javac 명령어로 컴파일
↓
3. Hello.class 파일 생성
↓
4. JVM이 .class 파일 실행
예를 들어 다음과 같은 자바 파일이 있다고 가정해보겠습니다.
public class Hello {
public static void main(String[] args) {
System.out.println("Hello Java!");
}
}
이 파일의 이름은 Hello.java입니다. 이 파일을 컴파일하면 Hello.class라는 파일이 만들어집니다.
javac Hello.java
컴파일 후 생성된 Hello.class 파일을 실행할 때는 다음 명령어를 사용합니다.
java Hello
실행 결과는 다음과 같습니다.
Hello Java!
7. 컴파일이란?
컴파일이란 사람이 작성한 코드를 컴퓨터가 이해할 수 있는 형태로 바꾸는 과정입니다.
자바에서는 .java 파일을 컴파일하면 .class 파일이 만들어집니다. 이 .class 파일 안에는 바이트코드가 들어 있습니다.
| 파일 | 설명 |
.java |
사람이 작성하는 자바 소스 코드 파일 |
.class |
컴파일 후 만들어지는 바이트코드 파일 |
여기서 중요한 점은 JVM이 .java 파일을 직접 실행하는 것이 아니라, 컴파일된 .class 파일을 실행한다는 것입니다.
8. JDK, JRE, JVM을 비유로 이해하기
조금 더 쉽게 비유해보겠습니다.
JDK는 요리 도구 세트입니다.
재료를 손질하고 요리를 만들 수 있는 칼, 냄비, 도마 같은 도구들이 들어 있습니다.
JRE는 완성된 요리를 먹을 수 있는 식탁과 환경입니다.
요리를 직접 만들지는 않지만, 완성된 음식을 먹을 수 있게 해줍니다.
JVM은 실제로 음식을 먹기 좋게 처리해주는 역할입니다.
자바 프로그램이 실행될 수 있도록 중간에서 도와줍니다.
개발자는 코드를 작성하고 실행해야 하므로 JDK가 필요합니다. 일반 사용자는 완성된 자바 프로그램만 실행하면 되므로 JRE만 있어도 되는 경우가 있습니다.
9. 초보자가 꼭 기억해야 할 정리
자바를 처음 공부할 때는 너무 깊게 외우려고 하지 않아도 됩니다. 처음에는 아래 정도만 기억하면 충분합니다.
- JDK는 자바 개발 도구이다.
- JRE는 자바 실행 환경이다.
- JVM은 자바 프로그램을 실행하는 가상 머신이다.
- 자바 개발을 하려면 JDK를 설치해야 한다.
- 자바 코드는 컴파일 후
.class파일이 된다. - JVM은
.class파일을 실행한다.
한 줄 요약
자바를 공부하는 사람은 JDK를 설치하고, 작성한 코드는 컴파일을 거쳐 JVM에서 실행된다고 이해하면 됩니다.
10. 이번 글 정리
이번 글에서는 자바를 공부할 때 자주 나오는 JDK, JRE, JVM의 차이를 정리했습니다.
처음에는 이름이 비슷해서 헷갈릴 수 있지만, 역할을 기준으로 보면 어렵지 않습니다.
JDK: 자바 개발을 위한 도구
JRE: 자바 실행을 위한 환경
JVM: 자바 프로그램을 실제로 실행하는 가상 머신
앞으로 자바를 설치하거나 실행할 때 이 세 가지 개념을 알고 있으면 훨씬 이해하기 쉽습니다.
다음 글 예고
다음 글에서는 [Java 개념노트 03] 자바 개발환경 설치하기라는 주제로 JDK 설치와 개발 도구 준비 방법을 정리해보겠습니다.
GWDEVELBlog Java 개념노트 시리즈

'Computer Science > Java' 카테고리의 다른 글
| [Java] 개념노트 05 변수란 무엇인가? 값 저장하기 쉽게 이해하기 (0) | 2026.02.13 |
|---|---|
| [Java] 개념노트 04 Hello Java 출력문 이해하기 (0) | 2026.02.07 |
| [Java 개념노트] 03 자바 개발환경 설치하기 (0) | 2026.02.07 |
| [Java] 개념노트 01. 자바란 무엇인가? 특징과 사용 분야 쉽게 정리 (0) | 2026.02.01 |
| [Java ] 자바 공부를 시작하기 전에 (0) | 2026.02.01 |