시작하기

학습 목표


1. IntelliJ에서 JDK 설치와 프로젝트 생성

이 강의는 IntelliJ IDEA 하나로 개발 환경을 준비하는 방식을 기준으로 한다.

1.1 새 프로젝트를 만들면서 JDK 설치

  1. IntelliJ IDEA 실행 후 New Project 클릭
  2. 좌측에서 Java 선택
  3. Project SDK 영역에서 Download JDK 선택
  4. 수업 기준 버전(예: 17 또는 21) 선택
  5. Create를 누르면 JDK 다운로드와 프로젝트 생성이 함께 진행됨

1.2 기존 프로젝트에 JDK 연결

  1. File > Project Structure 열기
  2. Project 탭에서 SDK를 선택
  3. SDK가 없으면 Add SDK > Download JDK로 설치
  4. Project language level도 SDK 버전과 맞춤

1.3 설치 확인

IntelliJ 하단 Terminal에서 확인한다.

java -version
javac -version

2. Hello World 작성과 실행

2.1 코드 작성

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}

Java 애플리케이션 시작점은 main 메서드다.

2.2 IDE에서 실행

2.3 터미널에서 실행

javac HelloWorld.java
java HelloWorld

3. JDK, JRE, JVM 차이

Java를 정확히 이해하려면 이 세 가지를 구분해야 한다.

3.1 JVM (Java Virtual Machine)

3.2 JRE (Java Runtime Environment)

3.3 JDK (Java Development Kit)

관계:

JDK > JRE > JVM

JDK JRE JVM 관계도

JDK 안에 JRE, JRE 안에 JVM이 포함되는 구조를 시각적으로 정리한 그림이다.


4. Java 컴파일과 실행 원리

4.1 큰 흐름

소스코드(.java)
  -> javac 컴파일
바이트코드(.class)
  -> java 명령으로 JVM 실행
클래스 로딩/검증/링크/초기화
  -> 인터프리터 + JIT 컴파일
OS 위에서 동작

Java 컴파일 실행 파이프라인

컴파일 단계와 런타임 단계를 하나의 흐름으로 연결한 그림이다.

4.2 컴파일 단계 (javac)

4.3 클래스 로딩 단계

4.4 검증/링크/초기화

4.5 실행 엔진 (Interpreter + JIT)

4.6 메모리와 GC


5. 바이트코드와 플랫폼 독립성

Java 소스는 OS별 기계어로 바로 가지 않고, 중간 형태인 바이트코드로 컴파일된다.
같은 바이트코드는 각 OS의 JVM에서 실행되므로 다음이 가능하다.

이 개념을 흔히 WORA(Write Once, Run Anywhere)로 설명한다.


6. 자주 발생하는 문제와 점검 포인트

  1. javac를 찾지 못함
    • JDK가 아닌 JRE만 설치했거나 PATH 설정 문제일 가능성이 큼
  2. public class 이름과 파일명이 다름
    • 예: HelloWorld.java 파일에 public class Main 선언
    • 컴파일 에러 발생
  3. IntelliJ에서는 되는데 터미널에서는 안 됨
    • 작업 디렉터리, PATH, JDK 버전 차이 점검
  4. JDK 버전 불일치
    • 프로젝트 SDK와 실행 SDK가 다르면 예상치 못한 문법/라이브러리 오류 발생 가능

정리