본문으로 건너뛰기

Ch 1.2 자바 개발 환경 구축

자바 개발을 시작하기 위해서는 크게 두 가지가 필요합니다. 코드를 기계어로 번역해주는 JDK 와 코드를 편리하게 작성하게 해주는 IDE 입니다. 이 챕터에서는 JDK 21 설치부터 첫 프로그램 실행까지 단계별로 안내합니다.


1. JDK란?

JDK(Java Development Kit) 는 자바 프로그램을 개발하고 실행하는 데 필요한 도구들의 모음입니다.

도구역할
javac소스코드(.java)를 바이트코드(.class)로 컴파일
javaJVM을 실행하여 .class 파일 실행
javadoc소스코드 주석으로부터 HTML 문서 생성
jar여러 .class 파일을 하나의 .jar 파일로 묶음
jdb자바 디버거

JDK 배포판 선택

자바는 유료 버전(Oracle JDK)과 무료 버전(OpenJDK)이 있습니다. 학습 및 개인 프로젝트에는 무료 OpenJDK 기반 배포판 을 권장합니다.

배포판제공사특징
OpenJDKOracle공식 오픈소스 구현체
Amazon CorrettoAmazonAWS 최적화, 무료 장기 지원
Eclipse TemurinEclipse FoundationAdoptium 프로젝트, 가장 많이 사용
Azul ZuluAzul다양한 플랫폼 지원
GraalVMOracle네이티브 이미지 컴파일 지원

학습용으로는 Eclipse Temurin 21 LTS 또는 Amazon Corretto 21 LTS 를 권장합니다. 둘 다 무료이며 장기 지원이 보장됩니다.


2. JDK 21 설치

2.1 Windows 설치

방법 1: 공식 설치 파일 사용 (권장)

  1. Eclipse Temurin 다운로드 페이지 접속
  2. Java 21 (LTS) 선택 후 Windows x64 .msi 다운로드
  3. 다운로드된 .msi 파일 실행
  4. 설치 옵션에서 "Set JAVA_HOME variable""Add to PATH" 체크 확인
  5. 설치 완료 후 명령 프롬프트(cmd) 재시작

방법 2: winget (Windows Package Manager) 사용

# PowerShell 또는 cmd에서 실행
winget install EclipseAdoptium.Temurin.21.JDK

설치 확인:

java -version
javac -version

출력 예시:

openjdk version "21.0.2" 2024-01-16 LTS
OpenJDK Runtime Environment Temurin-21.0.2+13 (build 21.0.2+13-LTS)
OpenJDK 64-Bit Server VM Temurin-21.0.2+13 (build 21.0.2+13-LTS, mixed mode, sharing)
javac 21.0.2

2.2 macOS 설치

방법 1: Homebrew 사용 (권장)

# Homebrew 설치 (없는 경우)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# Temurin JDK 21 설치
brew install --cask temurin@21

# 설치 확인
java -version
javac -version

방법 2: 공식 설치 파일 사용

  1. Eclipse Temurin 다운로드 페이지 접속
  2. Java 21 (LTS) 선택 후 macOS aarch64 (M1/M2/M3) 또는 x64 (Intel) 선택
  3. .pkg 파일 다운로드 후 실행
  4. 화면 안내에 따라 설치 완료

여러 버전 관리 (SDKMAN):

# SDKMAN 설치
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"

# Java 21 설치
sdk install java 21.0.2-tem

# 설치된 버전 목록 확인
sdk list java

# 버전 전환
sdk use java 21.0.2-tem

2.3 Linux (Ubuntu/Debian) 설치

# 패키지 목록 업데이트
sudo apt update

# Temurin 저장소 추가
wget -O - https://packages.adoptium.net/artifactory/api/gpg/key/public | \
sudo tee /etc/apt/keyrings/adoptium.asc

echo "deb [signed-by=/etc/apt/keyrings/adoptium.asc] \
https://packages.adoptium.net/artifactory/deb \
$(awk -F= '/^VERSION_CODENAME/{print$2}' /etc/os-release) main" | \
sudo tee /etc/apt/sources.list.d/adoptium.list

sudo apt update

# JDK 21 설치
sudo apt install temurin-21-jdk

# 설치 확인
java -version
javac -version

여러 JDK 버전이 있을 때 전환:

sudo update-alternatives --config java

3. 환경 변수 설정 (JAVA_HOME)

JAVA_HOME은 JDK 설치 경로를 가리키는 환경 변수입니다. Maven, Gradle 등 많은 도구가 이 변수를 참조합니다.

3.1 Windows 환경 변수 설정

GUI 방법:

  1. 윈도우 키 + R → sysdm.cpl 입력 후 엔터
  2. 고급 탭 → 환경 변수 버튼 클릭
  3. 시스템 변수에서 새로 만들기 클릭
    • 변수 이름: JAVA_HOME
    • 변수 값: C:\Program Files\Eclipse Adoptium\jdk-21.0.2.13-hotspot (실제 설치된 경로 확인 필요)
  4. 시스템 변수에서 Path 선택 → 편집새로 만들기
    • %JAVA_HOME%\bin 추가
  5. 모든 창 확인(OK) 후 cmd를 재시작

PowerShell 방법 (관리자 권한 필요):

# JAVA_HOME 설정
[System.Environment]::SetEnvironmentVariable(
"JAVA_HOME",
"C:\Program Files\Eclipse Adoptium\jdk-21.0.2.13-hotspot",
"Machine"
)

# PATH에 추가
$currentPath = [System.Environment]::GetEnvironmentVariable("Path", "Machine")
[System.Environment]::SetEnvironmentVariable(
"Path",
"$currentPath;%JAVA_HOME%\bin",
"Machine"
)

설정 확인:

echo %JAVA_HOME%
# C:\Program Files\Eclipse Adoptium\jdk-21.0.2.13-hotspot

java -version

3.2 macOS 환경 변수 설정

# JDK 설치 경로 확인
/usr/libexec/java_home -v 21

# ~/.zshrc 또는 ~/.bash_profile에 추가
echo 'export JAVA_HOME=$(/usr/libexec/java_home -v 21)' >> ~/.zshrc
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.zshrc

# 설정 적용
source ~/.zshrc

# 확인
echo $JAVA_HOME
java -version

3.3 Linux 환경 변수 설정

# JDK 설치 경로 확인
which java
readlink -f $(which java)
# 예: /usr/lib/jvm/temurin-21-amd64/bin/java

# ~/.bashrc 또는 ~/.profile에 추가
echo 'export JAVA_HOME=/usr/lib/jvm/temurin-21-amd64' >> ~/.bashrc
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc

# 설정 적용
source ~/.bashrc

# 확인
echo $JAVA_HOME
java -version

4. IDE 설치 및 설정

4.1 IntelliJ IDEA Community 설치 (권장)

IntelliJ IDEA는 현대 자바 개발에서 가장 대중적으로 사용되는 IDE입니다.

버전가격주요 기능
Community무료Java, Kotlin, 일반 개발
Ultimate유료웹 프레임워크, DB, Spring 전용 기능

학습 목적이라면 Community 버전으로 충분합니다. 학생 이메일이 있다면 JetBrains Student License로 Ultimate 버전을 무료로 사용할 수 있습니다.

설치 단계:

  1. JetBrains 다운로드 접속
  2. Community 탭에서 운영체제에 맞는 설치 파일 다운로드
  3. 설치 파일 실행 후 기본 옵션으로 설치

첫 번째 프로젝트 생성:

  1. IntelliJ IDEA 실행 → New Project 클릭
  2. Java 선택
  3. JDK 항목에서 설치한 JDK 21 선택 (없으면 Download JDK 클릭)
  4. 프로젝트명 입력: HelloJava
  5. 저장 위치 선택 후 Create 클릭
  6. src 폴더 우클릭 → NewJava Class
  7. 클래스명: HelloWorld 입력
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, IntelliJ IDEA!");
}
}
  1. 에디터 왼쪽 초록색 삼각형(▶) 클릭 또는 Shift + F10 으로 실행

IntelliJ 필수 단축키:

단축키기능
psvm + Tabpublic static void main(String[] args) 자동 완성
sout + TabSystem.out.println() 자동 완성
Shift + F10프로그램 실행
Shift + F9디버그 모드 실행
Ctrl + Space코드 자동 완성
Alt + Enter빠른 수정 제안
Ctrl + /한 줄 주석 토글
Ctrl + Shift + F전체 검색

4.2 VS Code + Extension Pack for Java

VS Code도 적절한 확장을 설치하면 강력한 자바 IDE로 활용할 수 있습니다.

설치 단계:

  1. VS Code 다운로드 및 설치
  2. VS Code 실행 후 Extensions 탭 (Ctrl + Shift + X)
  3. "Extension Pack for Java" 검색 후 설치
    • 이 팩에는 Language Support for Java, Debugger for Java, Maven for Java 등이 포함됨
  4. 명령 팔레트 (Ctrl + Shift + P) → Java: Create Java Project 실행
  5. 프로젝트 타입 선택: No build tools(초보자 권장)
  6. 프로젝트 저장 위치 선택 후 프로젝트명 입력

VS Code settings.json 권장 설정:

{
"java.home": "C:/Program Files/Eclipse Adoptium/jdk-21.0.2.13-hotspot",
"editor.formatOnSave": true,
"editor.tabSize": 4,
"files.autoSave": "onFocusChange"
}

5. 첫 번째 프로그램: Hello World

IDE 없이 터미널만으로 자바 프로그램을 작성하고 실행해봅니다. 이 과정을 이해하면 자바의 동작 원리를 명확히 파악할 수 있습니다.

5.1 소스 파일 작성

임의의 디렉토리에 Hello.java 파일을 생성합니다.

public class Hello {
public static void main(String[] args) {
System.out.println("Hello, World!");
System.out.println("자바 프로그래밍을 시작합니다!");
}
}
경고

파일명은 반드시 클래스명과 동일해야 합니다. 클래스명이 Hello이면 파일명은 Hello.java여야 합니다. 대소문자도 구분합니다.

5.2 컴파일

터미널에서 파일이 있는 디렉토리로 이동 후 컴파일합니다.

# 파일 저장 디렉토리로 이동
cd C:\Users\사용자명\Desktop\java_practice

# 컴파일 (Hello.java → Hello.class 생성)
javac Hello.java

# 컴파일 성공 시 Hello.class 파일 생성 확인
dir # Windows
ls -la # macOS/Linux

컴파일이 성공하면 오류 메시지 없이 Hello.class 파일이 생성됩니다.

5.3 실행

# .class 확장자 없이 클래스명만 입력
java Hello

출력:

Hello, World!
자바 프로그래밍을 시작합니다!
노트

java 명령에는 파일명(Hello.java)이 아닌 클래스명(Hello) 을 입력합니다. .class 확장자도 붙이지 않습니다.


6. 패키지 선언과 디렉토리 구조

자바의 패키지(package)는 클래스를 체계적으로 관리하는 네임스페이스입니다. 패키지 이름과 디렉토리 구조는 반드시 일치해야 합니다.

src/
└── com/
└── example/
└── myapp/
├── Main.java
└── util/
└── Helper.java
// 파일 위치: src/com/example/myapp/Main.java
package com.example.myapp; // 패키지 선언 (최상단에 위치)

import com.example.myapp.util.Helper; // 다른 클래스 임포트

public class Main {
public static void main(String[] args) {
System.out.println("패키지 구조 예제");
Helper.sayHello();
}
}

패키지가 있는 파일 컴파일 및 실행:

# src 디렉토리에서 실행
javac com/example/myapp/Main.java com/example/myapp/util/Helper.java

# 패키지 전체 경로로 실행
java com.example.myapp.Main

7. 빌드 도구 미리보기 (Maven & Gradle)

실제 프로젝트에서는 javac를 직접 사용하는 대신 빌드 도구 를 사용합니다.

Maven

XML 기반 빌드 도구입니다. pom.xml 파일로 의존성과 빌드 설정을 관리합니다.

<!-- pom.xml 기본 구조 -->
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>my-app</artifactId>
<version>1.0.0</version>

<properties>
<java.version>21</java.version>
</properties>

<dependencies>
<!-- 외부 라이브러리 의존성 -->
</dependencies>
</project>

Gradle

Groovy 또는 Kotlin DSL 기반의 현대적 빌드 도구입니다.

// build.gradle (Groovy DSL)
plugins {
id 'java'
}

java {
sourceCompatibility = JavaVersion.VERSION_21
targetCompatibility = JavaVersion.VERSION_21
}

dependencies {
// 외부 라이브러리 의존성
}

빌드 도구 비교:

특성MavenGradle
설정 방식XML (pom.xml)Groovy/Kotlin (build.gradle)
성능보통빠름 (증분 빌드, 캐시)
학습 곡선낮음보통
사용 사례Spring 레거시, 엔터프라이즈Android, Spring Boot 신규 프로젝트

8. 자주 발생하는 설치 오류 및 해결법

오류 1: 'java'은(는) 내부 또는 외부 명령이 아닙니다

원인: PATH 환경 변수에 JDK bin 디렉토리가 없음

해결:

# Windows: 시스템 속성 → 환경 변수 → Path에 추가
%JAVA_HOME%\bin

# 또는 직접 경로 입력
C:\Program Files\Eclipse Adoptium\jdk-21.0.2.13-hotspot\bin

오류 2: JAVA_HOME is not set

원인: 빌드 도구(Maven, Gradle)가 JAVA_HOME 환경 변수를 찾지 못함

해결:

# Windows
setx JAVA_HOME "C:\Program Files\Eclipse Adoptium\jdk-21.0.2.13-hotspot"

# macOS/Linux (~/.zshrc 또는 ~/.bashrc에 추가)
export JAVA_HOME=/usr/lib/jvm/temurin-21

오류 3: Error: Could not find or load main class

원인 1: 패키지 선언이 있는 경우 잘못된 위치에서 실행

# 잘못된 실행 (패키지가 있는 경우)
java HelloWorld

# 올바른 실행
java com.example.HelloWorld # 소스 루트에서 실행

원인 2: .class 확장자를 붙여서 실행

# 잘못된 실행
java Hello.class

# 올바른 실행
java Hello

오류 4: error: class HelloWorld is public, should be declared in a file named HelloWorld.java

원인: 파일명과 public 클래스명 불일치

해결: 파일명을 클래스명과 동일하게 변경 (대소문자 포함)

오류 5: UnsupportedClassVersionError

Error: LinkageError occurred while loading main class Hello
java.lang.UnsupportedClassVersionError: Hello has been compiled by a more
recent version of the Java Runtime (class file version 65.0), this version
of the Java Runtime only recognizes class file versions up to 55.0

원인: 컴파일 JDK 버전 > 실행 JRE 버전 (예: Java 21로 컴파일 후 Java 11로 실행)

해결: 실행 환경의 자바 버전을 컴파일 버전 이상으로 업그레이드


9. 개발 환경 점검 체크리스트

설치가 완료되면 아래 항목을 모두 확인하세요.

# 1. JDK 버전 확인
java -version
# → openjdk version "21.x.x" 출력 확인

# 2. 컴파일러 버전 확인
javac -version
# → javac 21.x.x 출력 확인

# 3. JAVA_HOME 확인
echo %JAVA_HOME% # Windows
echo $JAVA_HOME # macOS/Linux
# → JDK 설치 경로 출력 확인

# 4. 간단한 프로그램 컴파일 및 실행 테스트
echo public class Test { public static void main(String[] a) { System.out.println("OK"); } } > Test.java
javac Test.java && java Test
# → OK 출력 확인

모든 항목이 정상이라면 개발 환경 구축이 완료된 것입니다!

IntelliJ IDEA를 사용한다면 IDE가 JDK를 자동으로 감지합니다. File → Project Structure (Ctrl + Alt + Shift + S) → Project SDK 에서 설치한 JDK 21이 선택되어 있는지 확인하세요.


요약

단계내용
1단계JDK 21 LTS 다운로드 및 설치 (Eclipse Temurin 권장)
2단계JAVA_HOME 환경 변수 및 PATH 설정
3단계java -version, javac -version으로 설치 확인
4단계IDE 설치 (IntelliJ IDEA Community 권장)
5단계첫 번째 Hello World 프로그램 작성, 컴파일, 실행