[CS] jvm, jre, jdk 란?

이유은·2023년 12월 7일

[CS]

목록 보기
10/11
post-thumbnail

Jvm

자바 가상 머신 / 한번 작성해서 어디서든 실행
구체적으로 무슨 뜻인가요?

프로그램.
뭐하는?
코딩할때 쓰는 언어 , 우리가 보기 편한 언어는 컴퓨터가 못알아들어!!!
우리가 코딩한 언어가 기계어에 가깝게 컴파일, 번역이 됨
컴파일러라는 번역가에 의해 !

이 jvm 이 있는 자바는, 같은 컴파일 언어인 c랑은 뭐가 달라?
다같은 기계어를 쓰는 게 아님!

프로그램이 돌 환경, 컴퓨터에 맞게 (맥,윈도우 다르니까) 거기에 맞는 기계어로 일일이 번역을 해줘야함

이런 문제를 해결하기 위해 만들어진게 jvm
각 종류의 컴퓨터 마다 jvm이라는 전담 통역센터가 있는거임!!
자바로 코딩을 하고 컴파일을 하고나면
기계어는 아니고, 바이트 코드라는게 생김
사람어 - 바이트코드 - 기계어 / 중간단계
.class 파일 // 바이트 코드

이 바이트 코드를 실행할 컴퓨터에 깔린 jvm에 갖다주면
그 컴퓨터가 이 프로그램을 실행할 때, 이 jvm이
바이트코드를 그때그때 기계어로 통역해줌!

jvm처럼 실행 시점에 그때그때 기계어로 '통번역'해주는 방식을
just in time 컴파일 // jit 컴파일 이라고함


JRE

Java Runtime Environment
런타임 - 컴파일 타임이랑 대조
컴파일 - 코딩다하고 이걸 실행하거나 배포하기전에 '미리'해두는 번역 작업
그걸 하는 시점 컴파일 타임

런타임 - 이걸 실행하는 타임
자바로 짠 소프트웨어가 컴파일 및 빌드까지 다 된 다음 이를 사용할 곳에 주어져서 실행이 될 때 그 환경요소로서 필요한 것들

실행되는 시점 - 바이트코드로 컴파일 된 상태, jvm이 기계어로 읽어주면 되는데, 작성한 코드만으로 돌아가는 게 아님, 클래스로 제공되는 애들도 있어 , 널리쓰이는 그리고 jvm 도는 라이브러리들을 세트로 묶어다가 다운받아 설치될수 있도록 한게 jre

어떤 컴퓨터든 jre만 깔리면 자바로 작성한 프로그램을 돌릴 수 있게됨
jre가 jvm 도 포함하고 있음 ㅋ

근데 jre는 안보이고 요샌 jdk 만 보여


JDK

Java Development kit
자바 개발 도구
jre가 jvm을 포함하는 것처럼 jdk도 jre 자바 런타임 때 필요한 요소들 포함
개발에 필요한 것들 디버깅, 컴파일 , Jar (연관있는 클래스들을 묶어주는) , 기타 등등
최종사용자가 아닌 프로그래머를 위한 기능들도 같이 탑재하고 있음

jdk 종류도 여러가지

자바 언어자체는 무료! 뭘 개발할 때 쓰는 툴 jdk 중 오라클jdk
좋은 무료 버전도 많음

profile
우당탕코딩

0개의 댓글