JDK(Java Development Kit)
JDK는 Java Development Kit의 약자로 자바 개발자들이 개발할 때 필요한 도구 모임입니다. JDK에는 대표적으로 javac(자바 컴파일러, 자바 소스 코드를 바이트 코드로 컴파일), JRE(Java Runtime Environment, jdb(Java 디버거), javadoc(문서 생성기, 자바 소스 코드에서 API문서를 생성), jar(Java 아카이브 도구)가 있습니다.
즉, JDK는 자바 애플리케이션을 개발하고 실행하는 데 필요한 모든 도구를 제공합니다. Oracle, OpenJDK, Amazon Corretto 등 여러 배포판이 존재합니다.
JRE(Java Runtime Environment)
JRE는 Java Runtime Environment의 약자로 자바 런타임 환경을 의미하며 자바 애플리케이션을 실행하기 위한 환경을 제공합니다. JRE에는 JVM, 클래스 라이브러리(자바 기본 클래스 라이브러리), 구성 파일이 포함됩니다.
자바 애플리케이션을 개발하기 위해서는 JDK가 필요하지만, 이미 개발된 자바 애플리케이션을 실행하려면 JRE만으로 충분히 가능합니다. JRE는 Oracle, OpenJDK 등 여러 배포판이 존재합니다.
JVM(Java Virtual Machine)
JVM은 Java virtual Machine의 약자로 자바 가상 머신을 의미합니다. JVM은 자바 프로그램을 실행하기 위한 가상화된 컴퓨터 시스템으로 OS와 프로그램 사이에 하나의 추상 계층이 추가된 것입니다. 기존에는 OS 또는 하드웨어에 종속적으로 프로그래밍해야 했는데, JVM을 통해 한 번의 프로그래밍으로도 여러 환경에 독립적으로 실행할 수 있게 만들었습니다. 즉, 프로그래머가 더 중요한 것에 집중할 수 있는 환경을 제공해 준 가상 머신입니다.
JVM에는 Class Loader(자바 바이트 코드를 Runtime data area에 로딩하는 스레드), 실행 엔진(인터프리터, JIT 컴파일러), GC 등이 포함되어 있습니다.
JVM에 관해서는 다음 글에서 더 자세히 설명하겠습니다.
참고
'java|spring' 카테고리의 다른 글
Scanner vs. BufferedReader (0) | 2024.07.12 |
---|