산타는 없다

JVM, JRE, JDK 정리 본문

Programming Language/JAVA

JVM, JRE, JDK 정리

LEDPEAR 2021. 4. 30. 12:41
반응형

자바 용어 중 JVM, JRE, JDK에 정리해 보려고 합니다.

JVM (자바 가상 머신 / Java Virtual Machine)

자바 소스 코드(.java)는 자바 컴파일러(javac)에 의해 자바 바이트 코드(.class) 변환됩니다.
변환된 바이트 코드는 기계어가 아니기 때문에 바로 실행시킬 수 없고 JVM을 통해서 실행하게 됩니다.

이때 JVM은 플랫폼에 맞게 자바 바이트코드를 실행할 수 있도록 동작합니다.

즉, 자바 바이트 코드를 실행할 수 있도록 각각의 운영체제마다 JVM이 있어 어떤한 운영체제(Windows, Mac, Linux)에서든 동일한 자바 소스 코드를 실행할 수 있습니다. 이런한 자바의 특징을 WORA(Write Once Run Anywhere)라고 합니다.

또한 JVM에는 Garbage Collection이 있어 메모리를 관리해 주는 역활도 합니다.

JRE (자바 실행 환경 / Java Runtime Environment)

JRE는 JVM, 자바 클래스 라이브러리 (Java Class Libraries), 자바 클래스 로더(Java Class Loader)를 포함하고 있습니다.자바 클래스 라이브러리는 자바 프로그램 동작 시 필요한 라이프러리 파일들이며, 자바 클래스 로더는 JVM으로 클래스 파일(.Class / 자바 바이트코드)을 로딩합니다.또한 자바 프로그램 동작시킬 때 필요한 기타들도 가지고 있습니다.이렇게 구성된 JRE는 JVM의 실행환경을 구현했다고 할 수 있습니다.

JDK (자바 개발 도구 / Java Development Kit)

JRE + 개발에 필요한 도구(javac, java 등)들을 포함하고 있습니다.

때문에 JDK를 설치하면 JRE(JVM과 실행에 필요한 라이브러리, 기타파일) + 자바 컴파일러가 설치되어 자바를 사용하여 프로그램을 개발할 수 있습니다.

JRE와 JDK의 차이점을 나누자면

JRE만 설치했을 때는 클래스 파일을 JVM에 로딩시켜 실행할 수는 있지만 자바로 프로그램을 개발할 수 없다. 왜냐하면 자바 컴파일러가 없기 때문이다

하지만 JDK를 설치하면 자바 컴파일러도 같이 설치하기 때문에 자바로 프로그램을 개발하고 실행할 수 있는 것이다.

반응형
Comments