JVM, JRE, JDK, JAVA

cyr·2023년 6월 25일
1

자바를 현업에서 사용하지만 위 4가지 개념에 대한 제대로 된 이해가 없었다.

위 네가지에 대해 아는 만큼 간략히 적어보겠다.

JVM

JVM은 Java Virtual Machine의 약자로, 기본적으로 자바 바이트코드를 실행시키는 가상머신이다. JIT(Just-In-Time) 컴파일러를 사용하고 있어서, 단순한 인터프리터보다는 속도가 빠르다. 여기서 JIT 컴파일러란, 실행 전에 정적으로 컴파일을 하는 언어(C, C++ 등)들과 다르게, 실행 도중에 계속해서 컴파일을 한다. 실행 도중에 계속해서 컴파일이 일어나기 때문에 자원 사용에 있어서 정적컴파일보다는 일반적으로 성능이 떨어진다. 컴파일된 내용들은 캐싱하여 재사용되는 시점마다 다시 사용하게 되므로 인터프리터보다 더 빠르게 동작한다.

이러한 JIT 컴파일러를 통해 바이트 코드를 실행하는 것이 JVM이며, 같은 형태의 바이트 코드로 컴파일 된 내용이라면, 언어에 무관하게 실행시킬 수 있다.

JRE

JRE는 JVM을 포함하고 있으며 Java Runtime Environment의 약자이다. JAVA를 실행시키기위한 핵심라이브러리와 자바가 실행되기위해 필요한 세팅, 리소스등을 포함하고 있다. 자바를 실행시키기 위한 런타임으로 JRE만 있으면 자바로 작성한 바이트코드를 실행시킬 수 있다.(다만, JDK에 포함된 javac가 없기 때문에 자바코드를 바이트코드로 컴파일 할 수 없다.)

JDK

JDK는 JRE를 포함한 것으로, 자바의 실행환경과 더불어 자바의 개발도구들(컴파일러 등)을 포함하고 있다. JDK 없이 JRE가 돌아가는 경우는 거의 없기 때문에, Java11부터는 JRE와 JDK를 분리하여 배포하지 않고 JDK만 배포하고 있다.

JAVA

JAVA는 단순히 프로그래밍 언어이다. JAVA의 문법을 가지고 작성한 내용을 JDK를 통해 실행할 수 있는 것이다.

profile
개발

0개의 댓글