[JAVA]JVM(Java Virtual Machine), JDK (Java Development Kit), JRE (Java Runtime Environment)
요약
JVM이란?
- Java를 다양한 플랫폼(ex, 윈도우, 맥, 리눅스 등)에서 실행가능 하게 해주는 것
JDK란?
- 자바를 이용한 프로그램을 개발하는데 필요한 도구들을 모아 둔 집합
JRE란?
- 완성된 프로그램을 실행하는데 필요한 환경
본론
자바에 대해 공부하시는 분들이나 자바를 설치하여 사용해보신 분들은 JVM, JDK, JRE에 대해 다들 한번 씩은 들어봤을 것이다. 하지만 나 또한 그러했고 주변에서 이것을 모르고 사용하는 경우를 종종 볼 수 있는데 나와 같이 JVM, JDK, JRE에 대해서 헷갈려하시는 분들을 위해 공부한 내용을 정리하고자 한다.
우리는 이 3가지를 알기 전에 JAVA의 특징에 대해 알 필요가 있다.
자바는
- 플랫폼 독립성
- 객체지향언어
- 함수형 코딩 지원
- 분산처리 지원
- 멀티 쓰레드 지원
등 다양한 특징을 가지고 있는데 우리는 여기서 '플랫폼 독립성' 이라는 것에 대해 이해해야할 필요가 있다.
플랫폼 독립성이란?
하나의 프로그램이 모든 플랫폼에서 실행 가능하다는 것을 말한다.
Java라는 언어가 플랫폼 독립성을 지닐 수 있는 이유는 JVM(자바 가상 머신) 덕분에 가능하다.
JVM이 플랫폼마다 다른 가상머신을 만들어 어떤 플랫폼이던지 .class(자바 실행파일)을 실행할 수 있도록 해주기 때문이다.
그럼 JDK와 JRE는 무엇일까?
이 개념을 설명하기 위해 '움직이는 기차'를 만든다고 가정을 해보겠다.
JDK(자바 개발 도구)란?
자바를 이용해 프로그램을 개발하는데 필요한 도구를 모아둔 집합이라 생각하면 된다.
즉, 움직이는 기차를 만들기 위해 필요한 부품들을 모아둔 상자를 JDK라고 할 수 있다.
만약 여기에 파란색 기차 부품, 다른 모양의 바퀴 등 새로운 도구들이 추가되면 다양한 것을 만들 수 있게되는데 이 과정을 JDK를 업데이트 하는 과정이라고 생각하면 된다.
JRE(자바 개발 환경)란?
JRE는 완성된 프로그램을 실행하는데 필요한 환경을 말한다.
즉, 움직이는 기차를 실행해보기 위해 만들어 놓은 '철도'를 의미한다. 여러가지 부품들(JDK)을 이용해 움직이는 기차를 만들고 그 기차가 제대로 만들어 졌는지 확인해보기 위해서는 테스트 해보기 위한 철도가 필요한데 그 철도의 역할을 해주는 것이 JRE이다.
프로그램을 만들 때 이 프로그램이 제대로 만들어 지고 있는지 중간중간 확인하는 과정이 필요하다. 그런데 이때 JDK만 설치 되있고 JRE가 설치 되어있지 않으면 매우 불편할 것이다. 그리고 JVM을 이용하여 자바 파일을 실행시키기 위해서는 JRE가 반드시 필요한데 만약 설치되있지 않다면 실행조차 할 수 없을 것이다. 그래서 JDK 안에 JRE, JRE 안에 JVM이 포함(JDK ⊃ JRE ⊃ JVM) 되어 있는 관계가 형성된다.
참고문헌
김동형(2022). 자바 완전 정복(이지연). 이지스퍼블리싱