본문 바로가기
☁️ 구름 X kakao DeepDive/☁️ Java

[Java] 자바의 기본 - JVM, JRE, JDK이란?

by 뽀짜꼬 2025. 1. 14.
728x90
반응형

 

자바를 공부하기 전에 자바는 어떤 언어인지에 대해 이해를 하고 가야겠지 싶어서 정리하는 글

오늘은 JVM, JRE, JDK가 뭔지에 대해서 알아보도록 하겠다.


1. 컴파일과 인터프리터

우선 시작 전에 컴파일과 인터프리터에 대해 알아보겠다. 

컴퓨터는 자기가 알아먹을 수 있는 말을 해야 알아듣는다.

하지만 컴퓨터의 언어를 인간이 모두 작성하기에는 어려우므로..

인간은 인간의 언어로 코드를 작성하고, 컴퓨터가 알아듣는 언어로 번역해서 줘야한다.

그 과정의 차이가 컴파일언어와 인터프리터 언어이다.

 

1. 컴파일 (번역) 

컴파일은 프로그램 전체를 한 번에 번역하여, 기계어(실행 가능한 코드)로 변환하는 방식이다.

즉, 미리 번역을 해두었다가 번역본을 컴퓨터에게 전달하는것이다.

 

C계열코드, 자바가 있다.

2. 인터프리터 (통역)

인터프리터는 프로그램을 한 줄씩 번역하며 실행하는 방식이다.

즉, 인터프리터가 번역해서 컴퓨터에게 전달하는것이다.

 

 

통역사가 옆에서 그때그때 번역해준다고 생각하면 된다.

파이썬, JS등이 있다.

 

다만, 자바는 C언어와 다른 점이 있다.

우리가 나라마다 다른 언어를 사용하는 것처럼,

컴퓨터마다 사용하는 기계어가 다르다.

따라서 윈도우용으로 컴파일한 코드는 맥에서는 사용이 불가능하다.

C언어는 그렇다.

하지만 자바는 이와 달리 OS에 구애받지 않고 모두 실행 가능하다는것.

어떻게 그럴수가 있을까?

 

2. JVM, JRE, JDK

1. JVM (Java Virtual Machine)
: Java 프로그램을 실행하기 위한 가상 머신

자바는 각 운영체제에 JVM이라는것이 있어서,

코드를 JB(Java Bytecode)로만 바꿔주면 된다.

출처 - 얄코 제대로 파는 자바

Java Bytecode

  • Java 소스 코드가 컴파일러에 의해 변환된 중간 표현 언어.
  • 플랫폼이 독립적 ➡️ JVM이 설치된 어떤 운영 체제에서도 실행 가능

 

 

2. JRE (Java Runtime Environment)
: Java 실행 환경

JVM과 Java의 실행에 필요한 라이브러리 및 파일을 포함한다.

Java 프로그램을 실행하려면 JRE가 필요하다.

 

비유를 하자면, JVM은 주방장, JRE는 주방장이 일하는 공간이라고 생각하면된다!

표준 라이브러리는 레시피북이 되겠지.

 

3. JDK (Java Development Kit)
: Java 개발을 위한 도구

JDK에는 JRE와 개발에 필요한

컴파일러, 디버거, JAR, 프로파일러와 같은 도구들을 포함한다.

 

4. JVM, JRE, JDK 요약

JVM: 바이트코드를 실행.
JRE: JVM + 실행에 필요한 라이브러리와 파일.
JDK: JRE + 개발 도구(컴파일러, 디버거 등)

 

>> JDK 안에 JRE, JVM이 포함되어있고,
JRE 안에 JVM이 포함되어있다

출처 - 얄코 제대로 파는 자바

 

728x90
반응형