AiPE

Java SE / JDK / JRE / JVM 용어 정리 본문

[XiBBaL] Study/Java

Java SE / JDK / JRE / JVM 용어 정리

Oshimaker XiBBaL 2024. 3. 25. 20:58
반응형

자바를 처음 시작하면 여러가지 용어 때문에 헷갈리는데, 용어들의 상하구조와 정확한 정의를 먼저 정리해두고 시작하려고 한다.

 

① Java SE는 Java Standard Edition의 약자로, 한국어로는 "자바 표준안"에 해당한다.

자바라는 언어가 어떠한 문법적인 구성을 가져야 하는지, 어떤 방식으로 쓰이는 것이 표준인지를 규정한다.

한국어에도 한국어의 문법과 관련 규정을 정리해둔 <한국어 어문 규범>이 존재하는데, 이와 비슷한 개념이다.

자바도 언어이고, 그 언어의 표준을 규정하는 표준안이 필요한데, 이 표준안이 바로 Java SE이다.

 

 

② JDK는 Java Development Kit의 약자로, 한국어로는 "자바 개발 도구"에 해당한다.

프로그래머가 자바를 사용하여 여러가지 개발을 진행하기 위해 필요한 도구들이 담겨져 있는 공구 상자와 같은 개념이다.

JDK는 Java SE 표준안에 따라서 만들어진다.

JDK안에는 자바 코드를 컴파일하는 컴파일러, 개발에 필요한 각종 도구들, 그리고 후술할 JVM과 JRE가 포함되어 있다.

 

 

③ JRE는 Java Runtime Environment의 약자로, 한국어로는 "자바 구동 환경"에 해당한다.

자바 언어로 만들어진 프로그램을 구동하기 위해 필요한 JVM, 라이브러리, 각종 파일들이 포함되어 있다.

 

JDK와 JRE의 집합관계


JDK 안에는 JRE가 포함되어 있고, JRE 안에는 JVM이 포함되어 있다.

JRE에는 자바로 "짜여진 프로그램을 구동하기 위한" 도구만 포함되어 있을 뿐,
자바로 "프로그램을 개발하기 위한" 도구는 포함되어 있지 않다.

간단하게 말하면, JDK 및 그 하위 구성요소를 설치하는 것은 개발자,
JRE 및 그 하위 구성요소를 설치하는 것은 일반인(사용자)라고 할 수 있다.

예를 들어, 우리가 마인크래프트를 구동하기 위해 Java를 설치해야 한다고 하면, JRE를 설치하는 것이다.
우리는 Java로 짜여진 게임을 실행하고 싶은 것이지, 게임을 개발하고 싶은 것이 아니기 때문이다.

 

 

④ JVM은 Java Virtual Machine의 약자로, "자바 가상 머신"에 해당한다.

자바의 가장 큰 특징이자 장점 중 하나는 모든 환경에서 동일하게 동작한다는 것이다.

보통 언어의 경우 구동 환경이 달라지면 코드를 일부 수정하거나 다시 짜야 하는데, 자바는 JVM을 이용해 이러한 문제를 해결했다.

 

예를 들어, 기존 언어들의 경우 CPU의 종류가 Intel의 것인지, AMD의 것인지에 따라 제어 방식이 달라지고, 운영체제가 Win10인지, Win11인지에 따라 제어 방식이 달라져야만 했다.

 

이를 해결하기 위해 자바는 운영체제와 자바 코드 사이에 JVM이라는 단계를 하나 더 끼워넣음으로써 환경 변화에 따른 호환성 문제를 해결할 수 있었다.

(즉, 프로그래머가 Java 코드를 작성할 때 운영체제 및 하드웨어와의 호환성을 고려하지 않아도 된다.)

 

 

 

반응형