본문 바로가기

Language, IDE/JAVA, android

[JAVA 자바] JDK, JRE, JVM 차이

최근 자바 JDK 유료화 문제로 JDK에 대한 관심도가 증가하고 있다.

자바 JDK, JRE, JVM에 대해 포스팅하고자 한다.


범위로 보자면 JDK > JRE > JVM 이다.

가장 하위 단위인 JVM부터 설명하겠다.




JVM(Java Virtual Machine)
JVM은 자바 가상 머신의 줄임말로 자바프로그램 등을 컴파일하여 만들어진 바이트코드를 실행해주는 가상 머신이다.

자바는 어떤 운영체제에서도 상관없이 동일한 형태로 실행시킬 수 있는 장점이 있는데,

이를 가능하게 해주는 것이 JVM이다.


JAVA제조사에서 각 운영체제별로 JVM을 개발해주면,

자바 개발자들은 JVM위에 자바프로그램을 올리게 되어,

운영체제에 관계없이 프로그램을 개발할 수 있게 된다.

즉 JVM에 의해 동일한 환경을 보장 받는다고 볼 수 있다.

(JAVA는 썬마이크로시스템즈에서 개발하였으나 현재는 오라클에서 인수하였다)




JRE(Java Runtime Environment)
JRE는 자바 실행 환경의 줄임말로 JVM에 자바 라이브러리와 기타 파일들이 결합된 자바를 실행하기 위한 프로그램이다.

실제 자바를 설치하려면 JVM만을 설치할수는 없고 JRE를 설치하게 된다.

마인크래프트 같은 자바로 만들어진 프로그램의 실행을 위해 설치를 요구하는 경우 JRE를 깔게된다.

보통 일반 사용자용 JAVA라고 하면 이 JRE를 말한다.


자바로 만들어진 프로그램이 많음에도 우리가 평소에 JRE를 설치하지 않는 이유는 보통 프로그램에 JRE를 포함하여 배포하기 때문이다.



아래는 자바 다운로드를 치고 들어간 오라클사 자바다운로드 페이지 인데

가장 아래에 안내문구를 보면

"사용자 컴퓨터용 Java소프트웨어 또는 Java Runtime Environment는 ... 또는 JAVA다운로드 라고도 합니다."

라고 여러가지 불리는 호칭에 대해 정리하였다.



JDK(Java Development Kit)

JDK는 자바 개발 키트의 줄임말로 JRE에 컴파일러, 디버거 등 개발도구를을 포함하는 프로그램이다.

JDK는 폐쇄적 상업코드 기반의 오라클JDK와 오픈소스인 OpenJDK가 있다.

OpenJDK는 오라클, Azul 등에서 제공하고 있으며,

이 OpenJDK를 기반으로 반들어진 자체개발JDK를 포함한 제품들도 많이 있다.


최근 오라클사에서 오라클JDK에 대해서 유료화 한다고하여 많은 이슈가 되고 있는 상황이다.

JAVA 11버전부터는 즉시 서브스크립션(월과금)방식으로 출시하고,

JAVA 8이후 버전은 19년1월부터 서브스크립션방식으로 전환한다고 한다.

(개인의 경우 20년말까지 제공)

오라클 JDK유료화에 대한 자세한 내용은 다음 포스팅에서 상세히 다루겠다.