JDK, JRE, 그리고 JVM의 차이점은 인기있는 면접 질문 중 하나입니다. 또한 JDK와 JRE, JVM의 차이점을 설명하라는 질문을 받을 수도 있습니다.
JDK, JRE, 그리고 JVM의 차이점
JDK, JRE, 그리고 JVM은 자바 프로그래밍 언어의 핵심 개념입니다. 이러한 개념들은 프로그래밍에서 사용하지 않습니다. 그러나 자바 개발자로서, 우리는 이들에 대해 알아야 합니다.
1. JDK
Java Development Kit 또는 JDK는 자바 환경의 핵심 구성 요소로, 자바 프로그램을 컴파일, 디버그, 실행하는데 필요한 모든 도구, 실행 파일, 바이너리를 제공합니다. JDK는 플랫폼에 따라 다른 소프트웨어이며 그래서 Windows, Mac, Unix 시스템용 별도의 설치 프로그램이 있습니다. JDK는 자바 컴파일러, 디버거, 핵심 클래스를 포함하는 JRE를 포함하고 있으므로, 우리는 JDK를 JRE의 상위 집합이라고 말할 수 있습니다.
2. JVM
JVM은 자바 프로그래밍 언어의 핵심입니다. 자바 프로그램을 실행할 때 JVM은 바이트 코드를 기기별 코드로 변환하는 역할을 담당합니다. JVM은 또한 플랫폼에 따라 다르며, 메모리 관리, 가비지 수집, 보안 등과 같은 핵심 자바 기능을 제공합니다. JVM은 사용자 정의가 가능하며, 자바 옵션을 사용하여 사용자 정의할 수 있습니다. 예를 들어, JVM에 최소 및 최대 메모리를 할당하는 등입니다. JVM은 하드웨어 및 운영 체제에 의존하지 않는 인터페이스를 제공하기 때문에 “가상”이라고 불립니다. 이 하드웨어 및 운영 체제에 대한 독립성은 자바 프로그램을 한 번 작성하고 어디서든 실행할 수 있게 합니다.
3. JRE
JRE는 JVM의 구현체입니다. 자바 프로그램을 실행하기 위한 플랫폼을 제공합니다. JRE는 JVM, 자바 이진 파일 및 다른 클래스로 구성되어 어떤 프로그램이든 성공적으로 실행할 수 있게 합니다. JRE에는 자바 컴파일러, 디버거, JShell 등과 같은 개발 도구는 포함되어 있지 않습니다. 자바 프로그램을 실행하기만 하려면 JRE만 설치하면 됩니다. 자바 소스 코드의 개발 또는 컴파일이 필요하지 않기 때문에 JDK는 필요하지 않습니다. 이제 JDK, JVM 및 JRE에 대한 기본적인 이해가 있으므로, 이들 간의 차이점을 살펴보겠습니다.
JDK vs JRE vs JVM
JDK, JRE 및 JVM 간의 중요한 차이점을 몇 가지 살펴보겠습니다.
- JDK는 개발 목적으로 사용되고, JRE는 Java 프로그램을 실행하는 데 사용됩니다.
- JDK와 JRE 모두 JVM을 포함하고 있어 Java 프로그램을 실행할 수 있습니다.
- JVM은 Java 프로그래밍 언어의 핵심이며 플랫폼 독립성을 제공합니다.
Just-in-time Compiler (JIT)
가끔 교과서에서는 JIT이 JVM, JDK 및 JRE과 함께 언급됩니다. JIT은 JVM의 일부로서 바이트 코드를 기계 특정 언어로 변환하는 프로세스를 최적화합니다. 유사한 바이트 코드를 동시에 컴파일하고 바이트 코드를 기계 특정 언어로 변환하는 데 소요되는 전체 시간을 줄입니다.
Source:
https://www.digitalocean.com/community/tutorials/difference-jdk-vs-jre-vs-jvm