본문 바로가기
개발인생/Java Back-End

[Java 기초] JDK, JRE, JVM 알아보기

by DevOps_901126 2023. 8. 16.
반응형

[Java 기초] JDK, JRE, JVM 알아보기

 

컴퓨터가 JAVA 언어를 어떻게 인식할 수 있는걸까?

위와 같은 코드를 작성하게되면 컴퓨터가 바로 Hello World 라는 문자를 인식하는게 아니다,

컴파일 이라는 과정을 통해서 010101, 101010 과 같은 이진수 바이트 코드 혹은 바이너리 코드로 변환이 되어

0과 1밖에 모르는 컴퓨터가 JAVA 언어를 인식할 수 있게 되는 것.

이 때 컴파일을 하는 프로그램을 컴파일러 라고 지칭한다.

(참고로 Window, MacOS, Linux 마다 바이트 코드의 조합이 다름 그래서 C언어는 각 OS마다 다른 컴파일러를 사용하지만,

JAVA는 자바 컴파일러가 있고, 각 OS 마다의 JVM(Java Virtual Machine)이 있고 여기서 각 OS 마다 맞춰서 번역을 해줌.

고로 JAVA는 하나의 코드의 결과물만 만들어 놓으면 어떠한 OS에서 실행을 시키든 결과값이 같다.

이러한 고가용성의 특징을 갖고있는 JVM 이기 때문에 자바 외에도, 코틀린, 그루비, 스칼라 언어에서도 사용한다.)

 

JDK, JRE는 무엇인가?

JDK ⊃ JRE  ⊃ JVM

  • JRE (Java Runtime Environment)
    - 자바 실행 환경의 약자
    - JRE = JVM + 자바 프로그램 실행에 필요한 라이브러리 파일 등
    - JVM이 실행되기 위한 실행환경을 갖고있다고 보면 됨.

  • JDK (Java Development Kit)
    - 자바 개발 도구의 약자
    - JDK = JRE + 개발을 위한 도구
    - 컴파일러, 디버그 도구 등이 포함되어있음.
    - JAVA의 버전은 곧 JDK의 버전이 된다.

 

JDK 버전 (=JAVA 버전)

* JAVA8 버전, 11버전, 13버전을 자주 사용하며 JAVA 버전을 맞춰주어야 함.

* 각 버전마다 새로운 기능이 추가되거나 기존 기능이 사라지기 때문이다.

* LTS 는 Long time support 버전이므로 오랜시간 업데이트 없이 지원이 되는 버전을 말한다.

 

JDK 종류

* Open JDK , Oracle JDK 등이 있는데 Open JDK는 언제나 무료이며 Oracle JDK와 성능이 비슷하다.

* JDK의 종류마다 기능 자체는 모두 동일하나 성능과 비용에 약간의 차이는 있을 수 있다.

(Oracle JDK 기업용은 유료, 개인용은 무료이다)

반응형