chapter 1 보충편 (jvm, jre, jdk란?)

JMG·2022년 1월 5일
0

자바의 정석

목록 보기
3/13

📌 JDK, JVM, JRE 그리고 JIT

자바의 정석 강의를 듣다가 위 키워드들에 대한 좀 더 자세한 보충설명이 필요할 것 같아 따로 이 글을 작성했습니다.
검색해보니 워낙 잘 정리해둔 글이 많아서 출처를 남기고 정리해보았습니다.

먼저 큰틀을 살펴보면 JDK > JRE > JVM 순으로 종속되는 관계를 갖는 개념이라고 볼 수 있습니다.
흔히 자바를 받아서 설치했다고 하면 가장 큰 단위인 JDK를 다운로드 받은 것을 의미합니다.

📖 JVM(Java Virtual Machine)

JVM 즉, 자바 가상 머신은 자바를 실행하기 위한 가상 환경이라고 볼 수 있습니다.
자바가 어떤 OS(window, linux, mac)위에서도 돌아갈 수 있는 이유가 바로이 JVM덕분입니다.
자바라는 언어 자체는 컴퓨터가 읽을 수 없어 자바의 컴파일러가 java파일을 class파일로 변경해주면 자바코드는 byte코드로 변경됩니다.
그러나 byte코드도 기계어가 아니고 또 os별로 기계어를 읽는 방식이 틀리기 때문에 컴퓨터가 읽게 하려면 또 한번
컴파일 과정을 거쳐야하는데 그때 JIT(Just In Time)컴파일러가 사용이 되고 이 JIT컴파일러는 JVM안에 내장되어 있습니다.

📖 JRE(Java Runtime Evironment)

JRE는 JVM과 자바 라이브러리API를 함께 묶어서 배포되는 패키지 입니다.
그러나 JRE에서 의미하는 라이브러리는 개발할 때 사용할 수 있는 라이브러리가 아닌 이미 작성된 자바코드를 읽을때 사용되는 라이브러리라는 점을 유의해야합니다.
자바 프로그램이 돌아가기 위한 최소단위의 패키지입니다.

📖 JDK(Java Development Kit)

마지막으로 JDK는 JRE와 실질적인 자바 개발에 필요한 툴을 합쳐놓은 키트입니다.
JDK에 javac.exe라는 프로그램이 내장되어서 .class파일로 컴파일할 수 있습니다.
그래서 자바개발을 하려면 반드시 JDK가 필요합니다.

📖 마지막으로..

사실 JVM에서 좀 더 깊게 저수준의 단계를 정리해야 완벽하겠지만 시간이 너무 오래걸릴것 같고 제가 적는것보다 훨씬 더 잘 정리해 놓은 블로그가 있어서 아래 링크를 첨부해 놓겠습니다. ㅠㅜ

https://doozi0316.tistory.com/entry/1%EC%A3%BC%EC%B0%A8-JVM%EC%9D%80-%EB%AC%B4%EC%97%87%EC%9D%B4%EB%A9%B0-%EC%9E%90%EB%B0%94-%EC%BD%94%EB%93%9C%EB%8A%94-%EC%96%B4%EB%96%BB%EA%B2%8C-%EC%8B%A4%ED%96%89%ED%95%98%EB%8A%94-%EA%B2%83%EC%9D%B8%EA%B0%80

아래는 기타 참고 블로그들입니다.

https://ncucu.me/139
https://yonechu.github.io/java/2021/06/18/Java-JDK_JRE%EB%93%B1.html

profile
초보개발 블로그입니다~

0개의 댓글