JVM JRE JDK

Haiseong Jeong·2022년 10월 18일
3
post-thumbnail

Write Once, Run Anywhere

Write Once, Run Anywhere(WORA)는 썬 마이크로시스템즈에 의해 만들어진 자바를 홍보하기 위한 말이다. 자바는 플랫폼 독립적으로 설계되어 운영체제나 하드웨어에 상관없이 같은 코드를 동작시킬 수 있다.

플랫폼 종속적

앞에서 플랫폼 독립적이라는 말을 사용했다. 그 반대말인 플랫폼 종속적이라는 말은 무슨뜻일까. 예를들어 리눅스에서 개발한 C코드는 윈도우에서 실행되지 않는다. 그 이유는 다음과 같다.

기계어가 CPU마다 다르다.

운영체제마다 API가 다르다.

운영체제마다 실행 형식이 다르다.

바이트 코드와 JVM

우리가 만든 코드는 기계가 바로 읽을 수 없다. 기계가 읽을수 있는 언어는 기계어다. 우리가 짠 코드를 기계어로 바꾸는 과정을 컴파일 이라고 한다. 자바파일(.java)을 컴파일 한다. 컴파일 하면 바이트코드(.class)가 만들어진다. 이 코드는 cpu에 의해서 바로 실행되는것이 아닌 JVM(Java Virtual Machine)에 의해서 실행된다. JVM은 각 플랫폼에 꼭 맞게 만들어진다. 따라서 JVM은 플랫폼 종속적이다. 대신 JVM에 의해서 해석되는 바이트 코드가 어느 환경이나 동일한 결과를 보여준다.

JRE

JRE는 Java Runtime Environment로 JVM과 라이브러리, API등 실행에 필요한 환경을 제공한다. 컴파일된 자바코드를 실행시키기 위해서는 꼭 필요한 환경이라고 할 수 있다.

JDK

JDK는 Java Development Kit이다. JDK = JRE + 개발도구(디버거 등)이라고 생각하면 된다. JDK는 프로그램을 생성, 실행, 컴파일한다.

profile
나는 개발자다. 5000만큼 코딩한다.

0개의 댓글