알고리즘/JAVA

자바의 기본 개념과 JVM, JRE, JDK

꾸주니=^= 2025. 1. 14. 15:01

자바(Java)란?

자바는 플랫폼 독립성을 갖춘 객체 지향 프로그래밍 언어로, 다양한 운영체제에서 동일한 코드를 실행할 수 있는 강력한 장점을 제공합니다. 이러한 플랫폼 독립성은 자바의 핵심 구성 요소인 JVM(Java Virtual Machine)을 통해 실현됩니다.

 

컴파일과 인터프리터

컴파일러는 소스 코드를 바이트 코드(Bytecode)로 변환하고, 인터프리터는 바이트 코드를 실행 단계에서 읽고 처리합니다.

자바는 이 두 가지 방식을 결합하여 높은 이식성과 효율성을 제공합니다.

 

JVM, JRE, JDK의 역할

1. JVM (Java Virtual Machine)

JVM은 자바 프로그램의 실행 환경을 제공합니다. 플랫폼에 의존하지 않는 바이트 코드를 각 운영체제에 맞는 기계어로 변환해 실행합니다. JVM은 다음과 같은 주요 구성 요소로 이루어져 있습니다:

  • Class Loader: 바이트 코드를 메모리에 로드
  • Execution Engine: 로드된 바이트 코드를 실행
  • Garbage Collector: 불필요한 메모리를 자동으로 회수

 

2. JRE (Java Runtime Environment)

JRE는 자바 애플리케이션을 실행하기 위한 환경을 제공합니다. JVM과 함께 표준 클래스 라이브러리를 포함하여 자바 프로그램이 정상적으로 동작할 수 있는 런타임 환경을 제공합니다.

JRE는 개발이 아닌 실행만을 목적으로 하기 때문에, 자바 애플리케이션을 개발하려는 경우 JDK를 사용해야 합니다.

 

3. JDK (Java Development Kit)

JDK는 자바 애플리케이션을 개발하고 실행하기 위한 도구 모음입니다. JRE가 포함되어 있으며, 추가적으로 다음과 같은 개발 도구를 제공합니다:

  • 컴파일러 (javac): 자바 소스 코드를 바이트 코드로 변환
  • 디버거 (jdb): 프로그램의 버그를 찾고 수정
  • 문서 생성기 (javadoc): API 문서를 생성

 

JVM, JRE, JDK의 관계

JVM은 JRE의 핵심 구성 요소이며, JRE는 JDK의 일부입니다. 이를 계층적으로 표현하면 다음과 같습니다:

  • JDK: 개발 및 실행 환경 제공 (JRE + 개발 도구)
    • JRE: 실행 환경 제공 (JVM + 라이브러리)
      • JVM: 바이트 코드 실행 환경 제공

 


결론

JVM, JRE, JDK는 자바를 이해하는 데 핵심적인 개념입니다.
각각의 역할과 상호 관계를 이해하면, 자바 프로그램의 실행 과정과 플랫폼 독립성을 보다 명확히 이해할 수 있습니다.
이를 기반으로 자바를 더 깊이 학습해 나가세요!