본문 바로가기
JAVA

JAVA용어에 대해서 SE, JDK, JRE, JVM 등...

by HTT 2023. 1. 7.

JAVA(자바)용어 정리





 

 

 

Java SE(Java Platform, Standard Edition)

 

데스크톱 및 서버, 최근의 고사양 임베디드 시스템을 위한 표준 자바 플랫폼으로 표준적인 컴퓨팅 환경을 지원하기 위한 자바 가상 머신 규격 및 API 집합을 포함한다. 따라서 JAVA EE, JAVA ME 등 다른 플랫폼은 구체적인 목적에 따라 JAVA SE를 기반으로 API를 추가하거나 자바 가상 머신 규격 및 API의 일부를 택해서 정의된다.

쉽게 말해 구체적인 소프트웨어가 아니고 그 소프트웨어의  명세서(spec, specification)라고 할 수 있다. 이 명세서에 따라 java가 만들어 진다.

 

 

JAVA EE(Enterprise Edition)

 

JAVA SE에 엔터프라이즈용 여러 기능(라이브러리 등)을 포함한 확장 버전으로 대규모, 다계층, 확장성, 신뢰성, 보안 네트워킹 API, 환경 등을 제공한다.

 

 

JDK(Java Development Kit)

 

JAVA SE의 표준안에 따라서 만들어진 구체적인 소프트웨어로 개발자를 위한 JAVA 버전이다. 다음과 같은 두 가지를 포함하고 있다. 소스 코드( .java 파일)를 바이트 코드( .class 파일)로 컴파일하고 프로그램을 디버그하는 데 도움이 되는 javac , 디버거, jar와 같은 유틸리티와 바이트 코드를 실행하는 데 도움이 되는 java 와 같은 유틸리티를 포함하는 JRE이다. 프로그램을 작성하고 실행하려면 JDK가 설치되어 있어야 한다.

 

 

javac(Java Compiler)

 

JDK에 포함되어 있으며, .java 소스 파일을 바이트 코드(.class 파일)로 컴파일하는 실행 파일/응용 프로그램이다.

 

 

JRE(Java Run-time Environment)

 

프로그램이 실행되는 데 필요하며 JVM , Java 클래스/패키지 및 런타임 라이브러리가 포함되어 있다 . 프로그램을 작성하지 않고 다른 사람이 작성한 프로그램만 실행하려면 JRE 만으로도 충분하다. JAVA 버전에 따른 기본 라이브러리를 포함한다.

 

 

 JVM(Java Virtual Machine)

 

프로그램( .class 파일)을 실행하는 JRE 의 중요한 부분이며, Java 클래스 라이브러리와 런타임 라이브러리를 사용하여 해당 프로그램을 실행한다. 모든 운영 체제(OS) 또는 플랫폼 에는 서로 다른 JVM이 있다 .

자바로 만들어진 소프트웨어는 JVM이라는 가상화된 환경에서 구동되고, 하드웨어나 운영체제에 따라서 달라질 수 있는 호환성의 문제는 운영체제 버전에 따라서 만들어진 JVM이 알아서 해결한다. 즉, 하나의 자바 프로그램을 만들면 어떤 환경에서도 실행할 수 있는 것이 바로 JVM의 역할이라고 할 수 있다.

 

 

java(Java Executable)

 

.class 파일을 실행/실행하는 애플리케이션으로, 프로그램 실행을 위해 내부적으로 JVM을 호출한다.

 

 

JIT(Just In Time Compiler)

 

성능 향상을 위해 바이트 코드의 특정 부분을 기계 코드로 컴파일하는 데 도움이 되는 JVM 내부의 모듈이다 . 바이트 코드의 특정 부분만 기계 코드로 컴파일되고 다른 부분은 일반적으로 해석 및 실행된다.

 

 

 

 

※ 각 프로그램 버전 문제

- JAVA SE 버전이 가장 우선된다(JAVA의 문법을 어느 version의 기준으로 할 것인가).
- JDK 버전은 이 JAVA SE 버전을 지원하는 버전이라고 볼 수 있다(예를 들어 현재 JDK 13.0.1은 JAVA SE 13.0.1 버전에 맞춘 개발 툴이라고 보면 됨).
- 이클립스 버전은 이클립스에서 JDK(JAVA SE) 버전을 어디까지 지원해주는지에 대한 문제
- 즉, 이클립스에서 JAVA SE 12까지만 지원하는데 JDK 13을 깔아버리면 호환성 문제 발생 가능

 

 

 

 

 

 

 

 

참고 및 출처

https://java.meritcampus.com/core-java-topics/jdk-jre-jvm-jit-java-compiler

https://codevang.tistory.com/86

https://whitekeyboard.tistory.com/368

https://ko.wikipedia.org/wiki/%EC%9E%90%EB%B0%94_%ED%94%8C%EB%9E%AB%ED%8F%BC,_%EC%8A%A4%ED%83%A0%EB%8D%94%EB%93%9C_%EC%97%90%EB%94%94%EC%85%98

https://doozi316.github.io/java/2020/07/01/WEB20/

댓글