자바 언어는 "Write Once, Run Anywhere" 원칙을 따라 어느 운영체제에서든 코드를 한 번 작성하면 어디에서든 실행될 수 있다. 이는 자바의 플랫폼 독립성을 강조하는 특징이다. 자바는 자바 가상 머신(Java Virtual Machine, JVM)을 통해 운영체제와 독립적으로 실행된다.
- 만약에 운영체제마다 소스코드를 하나 씩 따로 만든다면..
위 그림처럼 각 운영체제에 맞는 소스코드를 따로 작성해야 하는 번거로움이 생긴.
이 같은 문제를 해결하기 위해서 자바는 다음과 같은 방식으로 WORA(Write Once Run Anywhere)를 구현할 수 있다.
(한번 작성하고 어느 환경에서든 돌아간다.)
자바 소스코드는 바이트코드로 컴파일되며, 이는 각 운영체제에 맞춘 JVM을 통해 실행된다(각 운영체제에 맞는 JVM 버전을 설치해야 한다.)
이와 같이 중간 매개체를 통해 위에서 언급한 문제를 해결 할 수가 있다. 하나의 파일로 어느 환경에서든 실행될 수 있기 때문에 이를 이식성이 좋다고 한다.
(추가로, 바이트코드랑 바이너리코드(이진코드) 용어가 비슷해보이지만 바이트코드는 가상머신이 해석할 수 있는 코드이고 바이너리코드는 cpu가 해석할 수 있는 코드이다.)
- 자바 번역과정에서 사용되는 용어들 정리
1. Javac(Java Compiler)
자바 소스코드(.java)를 자바 바이트코드(.class)로 컴파일한다. 이는 JDK에 포함된 도구이다.
2.JVM(Java Virtual machine)
자바 바이트코드를 기계어로 번역하고 실행한다. 또한 가비지 콜렉션을 이용하여 메모리를 자동으로 관리한다.
3.JIT(Just In Time) Complier
자바 바이트코드를 기계어로 컴파일하는 모듈로, JVM 내에 포함되어 있다. JIT 컴파일러는 런타임에 자주 사용되는 코드를 기계어로 변환하여 성능을 향상시킨다.
4.JRE(Java Runtime Enviroment)
JVM과 자바 표준 라이브러리를 포함한다. 자바로 작성된 코드를 실행하려면 JRE가 필요하다. 예를 들어, 마인크래프트와 같은 자바 기반 게임을 실행하려면 JRE를 설치
5.JDK(Java Development Kit)
JRE+개발 툴(Javac, debugger 등)을 말한다. 즉, 자바코드 작성 (개발)+ 실행을 하는 도구이다. 자바로 개발을 한다면 JDK를 설치한다.
(더 자세한 내용은 영어로 설명된 http://java.meritcampus.com/core-java-topics/jdk-jre-jvm-jit-java-compiler참고)
'컴퓨터 > JAVA' 카테고리의 다른 글
Servlet/JSP - 서블릿 필터(filter) (0) | 2023.03.27 |
---|---|
Servlet/JSP - 상태 유지 방법 (0) | 2023.03.15 |
Servlet/JSP - GET/POST 요청 (0) | 2023.03.12 |
Servlet/JSP - Servlet 개념 (0) | 2023.03.09 |
Servlet/JSP - 웹 서버(WA)와 웹 어플리케이션 서버(WAS) (0) | 2023.03.08 |