자바 공부

[Java] 자바의 작동 원리 및 JDK, JRE에 대해 알아보자

민석삼 2025. 2. 17. 00:03

Java는 어떻게 동작하는 언어인가?

인간의 언어로 만들어진 소스코드(.java 파일)를 컴퓨터가 알아들을 수 있는 형태(1010...의 디지털 코드)로 변환해야 함.

Java 컴파일러가 나의 소스코드를 바이트 코드(.class 파일)로 변환한 후, JVM에 올려 자바 프로그램을 실행한다.

*컴파일: 인간의 언어를 기계어로 번역하는 과정

 

JVM이란? Java Virtual Machine (자바 가상머신)

- 자바 프로그램이 실행되는 가상의 공간

- OS별로 존재

- 바이너리 코드를 읽고 검증하고 실행

- 운영체제와 관계 없이 JVM이 구성되어 있는 곳에서는 모든 곳에서 동일한 코드로 작성된 Java 프로그램을 실행할 수 있다.

- 자바가 등장하기 전에는 운영체제 별로 소스를 바꾸어야 했다. 

- 자바가 등장하면서, 한 번 작성한 소스를 여러 운영체제에서 실행할 수 있는, 공통 환경을 구성할 수 있게 되었다

 

C언어의 경우, 운영체제마다 바이트코드 조합(0과 1이 조합)이 다르기 때문에, 윈도우에서 C언어 컴파일러가 컴파일 된 결과를 리눅스, 맥에게 주면 이해할 수 없음. 그래서 C언어는 각 운영체제마다 다른 컴파일러가 필요

자바는 컴파일러가 하나! 자바 컴파일러로 생성된 바이트코드를, 윈도우, 맥, 리눅스 위의 JVM에게 주면, JVM이 바이트코드를 운영체제와 호환시켜줌 (JAVA를 깔면 JVM이 같이 설치됨)

JVM은 똑같은 JAVA 바이트 코드를 OS마다 다르게 해석해주는 역할

그루비, 스칼라, 코틀린에서도 JVM이 사용된다

 

JRE란? Java Runtime Environment (자바 실행 환경)

- 자바로 컴파일 된 프로그램을 실행화는 환경

- JVM을 포함한 개념

- JRE = JVM + 자바 프로그램 실행에 필요한 여러 라이브러리 파일들

- 모든 자바 프로그램은 JVM에서 실행됨

- JRE라는 실행 환경이 구성되어 있어야, 그 안에서 JVM을 활용할 수 있다.

- JVM의 실행 환경을 구성

 

하지만 JRE(자바 실행 환경)가 구축되어 있다고 해서 우리가 자바 프로그램을 만들 수 있는 것은 아니고, JDK가 설치되어 있어야 함.

 

JDK란? Java Development Kit (자바 개발 도구)

- Java 어플리케이션 개발에 필요한 것들을 모아 구성한 프로그램

- Java 컴파일러(소스코드를 바이트로 변환하는 역할)과 JRE (자바 실행 환경)을 내장하고 있음

- JDK = JRE + 개발을 위한 도구

- 컴파일러, 디버그 도구 등이 포함됨

 

JRE에는 실행을 위한 도구가 들어있다면, JDK에는 개발을 위한 도구가 들어있음

 

인간이 작성한 자바 코드를 컴퓨터가 알아듣는 말로 바꾸기 위해서는 JDK가 필요함

JRE만 설치하면, 자바 프로그램을 실행시킬 순 있으나, 자바 코드를 작성하여 컴퓨터에서 실행시키는 것은 불가능하다.

JDK를 설치하면 JRE와 JVM도 함께 설치됨

 

JAVA의 버전 = JDK 버전

JDK 버전 중 LTS(Long Time Suuport)라는 버전이 있음: 조만간 중단할 예정이 없는.. 오래 써도 되는 버전 (Java 8, 11)

 

JDK 종류 중

Oracle JDK: 오라클에서 만든 JDK, 개인에게 무료, 기업용은 유료

Open JDK: Oracle JDK와 비슷한 성능, 언제나 무료