[김영한의 자바] 자바 기본편 (1)

송범·2025년 3월 18일

자바는 표준 스펙(Standard Specification)구현(Implementation) 으로 나눌 수 있다.

  1. 표준 스펙(Standard Specification)

표준 스펙은 자바 플랫폼에서 반드시 따라야 하는 규칙과 인터페이스를 정의합니다. 대표적으로는 다음과 같은 것들이 있습니다.

  • (1) 자바 컴파일러(Java Compiler) : Java 소스코드(.java)를 바이트코드(.class)로 변환하는 역할을 합니다.
    대표적인 컴파일러 : javac (JDK에서 제공)

  • (2) 자바 실행 라이브러리(Java Standard Library) : java.lang, java.util, java.io 등의 표준 라이브러리(클래스 및 API)들이 포함됩니다.
    개발자가 프로그램을 쉽게 개발할 수 있도록 제공되는 라이브러리입니다.

  • (3) 자바 가상 머신(JVM, Java Virtual Machine) : 바이트코드(.class)를 실행하는 런타임 환경입니다.
    Java 프로그램이 다양한 운영체제에서 실행할 수 있도록 해줍니다. (MacOS, Window, Linux 등)
    JVM은 표준 스펙을 기반으로 여러 벤더(Oracle, OpenJDK, Azul 등)에서 구현할 수 있습니다.

  1. 구현(Implementiation)

표준 스펙을 기반으로 실제 동작하는 구현체들이 있습니다. 대표적인 것들은 다음과 같습니다.

  • (1) JDK(Java Development Kit) : Java 애플리케이션을 개발할 수 있도록 지원하는 개발 도구 모음입니다.
    Javac(컴파일러), Java(JVM 실행기), 표준라이브러리, 개발도구(JConsole, JDB)등이 포함됩니다.
    대표적인 JDK 구현체 : Oracle JDK, OpenJDK(자바의 오픈소스 구현), Amazon Corretto(AWS에서 제공), Azul Zulu, GraalVM 등이 있습니다.

  • (2) JVM 구현체 : Java 바이트코드를 실행하는 가상 머신 입니다.
    대표적인 구현체 : HotSpot JVM(Oracle, OpenJDK에서 사용), OpenJ9(IBM에서 개발), GraalVM(Oracle에서 제공하는 최적화된 JVM)이 있습니다.

✅ 정리

  • 표준 스펙 : 자바 컴파일러, 실행 라이브러리, JVM의 규칙과 인터페이스 정의

  • 구현 : 표준 스펙을 따라 만들어진 실제 JDK 및 JVM 구현체 (Oracle JDK, OpenJDK, HotSpot, GraalVM 등)

    “표준 스펙”은 레시피(요리법) 같은 것이고, “구현”은 그 레시피를 사용해 만든 실제 요리(Oracle JDK, OpenJDK 등) 라고 볼 수 있습니다.

profile
BackEnd&Data Scientist가 되고 싶은 개발 기록 노트

0개의 댓글