SDK(Software Development Kit) 란?
- SDK는 말 그대로 소프트웨어 개발을 위한 키트(도구 모음)을 의미한다.
- SDK는 개발자가 필요로 하는 다양한 도구, 라이브러리, 문서 등을 제공한다.
- JDK는 SDK의 일종으로 자바로 개발을 하기 위한 SDK를 의미한다.
JDK(Java Development Kit) 란?
- JDK는 자바로 소프트웨어를 개발하기 위한 도구 모음을 의미한다.
- JDK에는 JRE를 비롯한 자바 컴파일러('javac'), 디버깅 도구, 빌드 도구 등이 포함되어 있어 자바 소스 코드를 작성하고 컴파일하며 실행할 수 있는 환경을 제공한다.
* 자바 컴파일러('javac')
- Java 소스코드 -> 바이트 코드
- Java 소스코드를 바이트 코드로 변환하는 Java 컴파일러이다. Java 소스코드를 JVM이 이해할 수 있는 바이트 코드로 변환한다. 바이트 코드는 JVM에서 실행될 때 실제 기계어로 변환되기 전 중간의 형태로 어셈블리(Assembly)어에 가깝다.
*어셈블리(Assembly) 어
- 컴퓨터가 직접 실행할 수 있는 기계어 명령어를 사람이 이해할 수 있는 기호 형태로 표현한 저수준의 프로그래밍 언어를 의미한다.
JRE (Java Rutime Environment) 란?
- JRE는 자바 어플리케이션을 실행하기 위한 런타임 환경(실행 환경)을 제공한다.
- JRE에는 JVM과 자바 런타임 라이브러리 등이 포함되어 있어 자바 어플리케이션을 실행하는데 필요한 요소들을 제공한다.
JVM (Java Virtual Machine) 란?
- JVM은 자바 가상 머신으로 자바 어플리케이션이 실행되는 환경이다.
- 자바 코드는 실제로 JVM 위에서 실행되며, 운영체제 별로 JVM이 존재하며 각 운영체제에 맞는 JVM이 필요하다.
- JVM은 자바 바이트 코드를 해당 운영체제에 맞는 기계어로 변환하여 준다.
JIT 컴파일러 (Just-In-Time Complier) 란?
- 바이트 코드 -> 기계어(네이티브 코드)
- JIT 컴파일러는 JVM 내부에서 동작하는 컴파일러로 자바 바이트 코드를 실제 기계어(네이티브 코드)로 변환한다.
- JVM이 프로그램을 실행할 때, JIT 컴파일러는 필요한 부분의 바이트 코드를 실제 기계어(네이티브 코드)로 컴파일하여 실행성능을 향상시키는 역할을 한다.
- JIT 컴파일러는 실행되는 코드를 분석하고, 반복적으로 실행되는 코드 블록을 실시간으로 컴파일하여 네이티브 코드로 변경한다.
'[Language] Java' 카테고리의 다른 글
[Language/Java] 봉인된 클래스 (Sealed Class) (38) | 2024.01.10 |
---|---|
[Language/Java] final클래스와 final메소드 (68) | 2024.01.06 |
[Language/Java] 싱글톤(Singleton) 패턴 - #2 싱글톤 패턴의 종류와 장단점 (74) | 2024.01.02 |
[Language/Java] 싱글톤(Singleton) 패턴 - #1 (33) | 2023.12.30 |
[Language/Java] 자바(Java)의 메모리 구조 (0) | 2023.11.29 |