Java JVM JRE JDK 정리

자바(Java)는 단순한 언어를 넘어 실행 환경과 개발 도구를 포함하는 거대한 생태계다.

이 생태계를 지탱하는 세 가지 핵심 축인 JDK, JRE, JVM의 계층 구조와 역할을 분석한다.

계층적 포함 관계

자바 환경은 하위 요소를 상위 요소가 감싸는 논리적 구조를 형성한다.

[ JDK (Java Development Kit) ]
  - 컴파일러(javac), 디버거 등 개발 도구 포함
  -----------------------------------------------------------
  [ JRE (Java Runtime Environment) ]
    - 클래스 라이브러리, API 등 실행 환경 포함
    ---------------------------------------------------------
    [ JVM (Java Virtual Machine) ]
      - 바이트코드 실행 엔진
      - 가비지 컬렉션(GC)을 통한 메모리 관리

JVM의 역할: 플랫폼 독립성

JVM은 자바 바이트코드를 실행하는 가상 머신이다.

OS에 독립적인 실행 환경을 제공하여 “Write Once, Run Anywhere (WORA)”를 실현하며, 가비지 컬렉션을 통해 메모리를 자동으로 관리한다.

JRE와 JDK의 기능적 구분

  • JRE: 자바 프로그램을 실행하기 위한 최소한의 환경이다.
    JVM과 표준 라이브러리를 포함한다.

  • JDK: 자바 프로그램을 개발하기 위한 도구 모음이다.
    JRE를 포함하며 컴파일러(javac)와 같은 개발 도구가 추가되어 있다.

코드에서 실행까지의 프로세스

  • 개발자가 .java 소스 코드를 작성한다.
  • javac 컴파일러가 소스를 .class 바이트코드로 변환한다.
    (JDK의 영역)
  • JVM이 바이트코드를 해석하여 OS 위에서 실행한다.
    (JRE/JVM의 영역)

P.S

자바 개발자라면 JDK 설치를 통해 이 모든 환경을 확보하게 된다.

기술의 기본 구조를 파악하는 것은 효율적인 문제 해결과 시스템 이해의 기반이 되는 것 같다.

Author avatar

웨이호프

WordPress creator and blogger.

View all posts