Java 동작과정 및 JDK와 JRE

민준·2025년 2월 7일
post-thumbnail

프로그램 동작 원리

  • 프로그램이 동작하는 기본원리는 기계어가 머신에서 해석되어 실행되는것

컴파일?, 인터프리터?, 런타임?

  • 컴파일(Compile)이란? 소스코드가 기계(H/W)가 처리하기 용이한 형태로 바꾸는 과정

  • 인터프리터란? 코드를 한줄씩 읽어 내려가며 실행하는 것

  • 런타임(Runtime)이란? 프로그램이 실행되고 있는 시간


Java의 동작과정

  • 컴파일(Compile) 과정 : Java 코드(.java) → 자바 컴파일러(Javac)를 통해 Bytecode(.class)로 변환한다.

    • 컴파일러(Compiler) = 자바 컴파일러(Javac)
  • 런타임(Runtime) 과정 : Bytecodes(.class) → 자바 엔진(JVM)을 통해 기계어(Binary Code)로 변환

    • 인터프리터(Interpreter) = 자바 엔진(JVM)
  • 컴파일 시 인지되는 문법 오류 등을 발생시키는걸 컴파일 에러라 하고, 실제 동작주엥 발생하는 에러는 런타임 에러라고 한다.

JDK(ava Development Kit)와 JRE(Java Runtime Environment)

JRE(Java Runtime Environment)

  • JRE(Java Runtime Environment) : Java "구동"을 위한 모든것
  • JRE = Other Libraries (API) + JVM (Java Virtual Machine)

JDK(ava Development Kit)

  • JDK(ava Development Kit) : JRE + Java "개발"을 위한 모든것

JRE와 JDK의 차이

Java로 "개발"하고 싶다 : JDK설치

  1. Intellij IDE 를 통해 자바 개발을 하고싶다면, 자바 개발에 필요한 모든 도구가 필요하기에JDK 설치
  2. 리눅스 혹은 Docker 의 컨테이너에서 자바를 빌드하기 위해서는 JDK 설치
    • Dockerfile 내에서 자바를 빌드만할수도 있고, 자바를 빌드하고 구동까지할수도 있다.

Java를 "구동"하고 싶다 : JRE설치

  1. 리눅스 혹은 Docker 의 컨테이너에서 자바를 빌드하기 위해서는 JDK 설치
    • Docker Image 정의 방식 = Dockerfile 정의 방식 | 자바 구동은 일반적으로 Gradle Run으로 실행
      • JRE를 베이스 이미지로 사용 시 → JAR 가져다 → (JRE로) 바로 구동
      • JDK를 베이스 이미지로 사용 시 → 소스코드 가져다 → (JDK로) JAR로 컴파일 후 → 구동

0개의 댓글