Java_language

자바 프로그램 실행 과정 (JVM 구조 이해하기)

헬로제이콥 2025. 11. 10. 16:33

자바 프로그램은 이렇게 4단계로 실행돼요 👇

 

[1] 코드 작성 (.java)
     ↓
[2] 컴파일 (javac)
     ↓
[3] 바이트코드 생성 (.class)
     ↓
[4] 실행 (java)

🧩 1단계. 코드 작성 (Source Code)

  • 개발자가 작성하는 부분
  • 예: Hello.java
  • 이 안에는 **사람이 읽을 수 있는 코드(문자)**가 들어 있어요.
public class Hello {
    public static void main(String[] args) {
        System.out.println("Hello Java!");
    }
}
🟡 결과: 파일 이름은 Hello.java
 

🧩 2단계. 컴파일 (Compile)

  • 명령어:
javac Hello.java
  • 컴파일러(javac) 가 사람이 쓴 코드를 기계가 이해할 수 있는 언어로 번역
  • 변환 결과로 바이트코드(Bytecode) 파일이 생깁니다.

🟡 결과: Hello.class 파일 생성
🧠 .class 파일은 자바 가상머신(JVM)이 읽는 언어예요.

 

 

🧩 3단계. 실행 (Run)

  • 명령어:
     
java Hello
  • JVM (Java Virtual Machine) 이 .class 파일을 읽고 실행합니다.
  • JVM은 OS(윈도우, 맥, 리눅스)에 맞게 자바 코드를 변환해서 실행시켜요.

🟡 결과:

Hello Java!

 

🧱 전체 흐름 요약 그림

 ┌─────────────────────────────┐
 │  [1] Hello.java (소스 코드) │
 └──────────────┬──────────────┘
                ↓
 ┌─────────────────────────────┐
 │  [2] javac (컴파일러)       │
 │      ↓ 번역 ↓               │
 └──────────────┬──────────────┘
                ↓
 ┌─────────────────────────────┐
 │  [3] Hello.class (바이트코드) │
 └──────────────┬──────────────┘
                ↓
 ┌─────────────────────────────┐
 │  [4] JVM (실행 엔진)         │
 │     ↓ 실행 ↓                 │
 └──────────────┬──────────────┘
                ↓
        🎉 콘솔에 "Hello Java!" 출력

 

 


💬 핵심 요약

구분파일명역할
👨‍💻 소스 코드 Hello.java 내가 작성하는 코드
⚙️ 컴파일 결과 Hello.class 기계가 이해할 수 있는 중간 언어
🧠 JVM 실행 java Hello 프로그램 실제 실행
🖥️ 출력 결과 콘솔 창 "Hello Java!" 표시

💡 비유로 이해하기

단계비유
코드 작성 사람이 글로 요리 레시피를 씀
컴파일 그 레시피를 기계어로 번역
JVM 실행 기계가 레시피를 보고 요리를 함
콘솔 출력 완성된 요리가 식탁에 나옴 🍽️