JVM, JRE, JDK

zwon·2023년 9월 1일
0

Java

목록 보기
1/4


JVM, JRE, JDK.. 자바를 많이 사용해봤으면 다 접해봤을 단어들이다.
하지만 JRE가 뭔지 설명하라고 했을 때, 쉽게 대답이 나오지 않아 정리하고자 한다.


컴퓨터는 우리가 작성한 코드들을 바로 인식하지 못한다.
컴퓨터는 0과1로된 것들 즉 기계어만 인식할 수 있기 때문이다.
그래서 우리는 컴퓨터가 이해할 수 있는 언어로 바꿔줘야한다.
그래서 우리가 작성한 코드들을 번역해주거나 통역해줘야한다.

번역 vs 통역

번역

  • 컴파일
  • 코드를 짜고 이 코드가 실행되기 전에 미리 컴퓨터가 읽을 수 있는 언어인 기계어로 바꿔준다. 즉 번역본을 생성하는 것
  • 그리고 실행할 때는 컴파일된 결과인 기계어를, 즉 번역본을 가지고 실행하는 것.
  • ex) C, JAVA

통역

  • 인터프리터
  • 코드를 바로 실행하는데, 인터프리터가 실시간으로 컴퓨터에게 코드를 읽어줘서 일을 시키는 것이다.
  • 중간과정없이 그때그때 바로 전달해주는 것
  • ex) Python

JVM (Java Virtual Machine)

그런데 컴파일을 한 결과를 번역본이라고 말하겠다.
환경에 따라 번역본을 실행할 수 있고 실행하지 못할 수도 있다.
예를 들어 C언어는 윈도우 운영체제에서 컴파일을 했다면, 컴파일 결과물을 맥이나 리눅스와 같은 운영체제에서 실행할 수 없다.

  • 하지만 자바는 JVM (Java Virtual Machine)을 사용해서 운영체제에 상관없이 실행할 수 있다.
  • 왜냐하면 다음과 같은 과정을 거치기 때문이다.
  1. 자바를 실행할 대상 기기에 JVM을 설치한다.
  2. 자바는 자바 바이트라는 언어로 컴파일이 된다.
  3. JVM이 자바 바이트 파일을 읽어 운영체제에 맞게 변환하여 전달.

자바는 다음과 같이 JVM을 통해 실행되기 때문에 운영체제에 독립적이다.

JVM을 그냥 자바를 실행시키기 위한 가상의 컴퓨터라고 생각하면 된다.

JRE (Java Runtime Environment)

  • 자바 실행 환경
  • JVM을 자바를 실행시킬 대상 기기에 설치한다고 했다.
  • 설치한 다음 실행할텐데, JVM이 실행되는 환경을 JRE라고 한다.
  • 즉 JRE도 설치되어 있어야한다는 것이다.
  • JRE에는 JVM뿐만 아니라 표준 라이브러리, 각종 설정파일들이 들어있다.

JDK (Java Development Kit)

  • 예전 자바는 JRE만 따로 다운받을 수 있게 되어 있었다.

  • 하지만 최근 자바는 JRE만 따로 제공하지 않고 이를 포함하는 JDK 전체를 다운받록 되어 있다.

  • JRE랑 JDK의 경계가 모호해진 것

  • JDK는 개발자가 자바로 프로그래밍을 하는 전 과정을 도와주는 킷이다.

  • JDK는 JRE, JVM, 라이브러리 뿐만 아니라 디버거, JAR, 성능 등을 모니터링하는 프로파일러 등의 개발 도구들을 포함하고 있는 개념이다.


터미널에서 Java 파일을 자바 바이트로 번역하고싶으면

javac 파일명.java

를 실행해주면 파일명.class파일이 생성된다.

그 다음 파일을 실행하려면 다음과 같이 실행하면 된다.
.class는 생략 가능하다.

java 파일명
profile
Backend 관련 지식을 정리하는 Back과사전

0개의 댓글

관련 채용 정보