Windows 개발 환경 구축 가이드 — SDK, 도구, PATH

Windows 개발 환경의 기본 구조

Windows에서 개발 환경을 구축할 때 가장 중요한 것은 SDK 설치, 환경변수(PATH) 설정, 도구 체인 연동입니다. Linux나 macOS와 달리 Windows는 패키지 관리자가 기본 내장되지 않았던 역사가 있어, 환경변수를 수동으로 관리해야 하는 경우가 많습니다.

이 글에서는 Windows에서 개발에 필요한 SDK, 도구, PATH를 체계적으로 설정하는 방법을 정리합니다.

환경변수와 PATH 이해하기

환경변수는 운영체제가 프로그램에 전달하는 키-값 쌍입니다. PATH는 그중 가장 중요한 변수로, 터미널에서 실행 파일을 찾는 디렉토리 목록입니다.

# 현재 PATH 확인
$env:PATH -split ';' | ForEach-Object { $_ }
# 출력 예시:
# C:\Windows\system32
# C:\Windows
# C:\Program Files\Git\cmd
# C:\Program Files\nodejs
# C:\Users\사용자\AppData\Local\Programs\Python\Python312\Scripts

# 특정 명령어의 실행 경로 확인
Get-Command git
# 출력 예시:
# CommandType  Name  Version  Source
# Application  git   2.44.0   C:\Program Files\Git\cmd\git.exe

# 환경변수 확인
$env:JAVA_HOME
$env:GOPATH
$env:PYTHON_HOME

환경변수 설정 방법

환경변수는 사용자 수준시스템 수준으로 나뉩니다. 개발 도구는 사용자 수준에 설정하는 것이 일반적입니다.

# 사용자 수준 환경변수 설정 (영구)
[Environment]::SetEnvironmentVariable("JAVA_HOME", "C:\Program Files\Java\jdk-21", "User")
[Environment]::SetEnvironmentVariable("GOPATH", "D:\Go", "User")

# 사용자 PATH에 경로 추가 (영구)
$currentPath = [Environment]::GetEnvironmentVariable("Path", "User")
$newPath = "$currentPath;C:\Program Files\Java\jdk-21\bin"
[Environment]::SetEnvironmentVariable("Path", $newPath, "User")

# 현재 세션에만 임시 적용
$env:JAVA_HOME = "C:\Program Files\Java\jdk-21"
$env:PATH += ";C:\Program Files\Java\jdk-21\bin"

# 변경사항 확인 (새 터미널 열어야 영구 설정 반영)
refreshenv  # Chocolatey가 설치된 경우 사용 가능

GUI에서도 설정할 수 있습니다: Win+S → “환경 변수” 검색 → “시스템 환경 변수 편집” → “환경 변수” 버튼

Git 설치 및 설정

Git은 거의 모든 개발 워크플로우의 기반입니다. Windows에서는 Git for Windows를 설치합니다.

# winget으로 설치
winget install Git.Git --silent

# 기본 설정
git config --global user.name "이름"
git config --global user.email "email@example.com"

# 줄바꿈 설정 (Windows에서 중요)
git config --global core.autocrlf true
# true: 체크아웃 시 LF→CRLF, 커밋 시 CRLF→LF

# 기본 편집기 설정
git config --global core.editor "code --wait"

# SSH 키 생성
ssh-keygen -t ed25519 -C "email@example.com"
# 생성된 공개키: C:\Users\사용자\.ssh\id_ed25519.pub

# 설정 확인
git config --global --list
# 출력 예시:
# user.name=이름
# user.email=email@example.com
# core.autocrlf=true
# core.editor=code --wait

Node.js 설정 (nvm-windows)

여러 Node.js 버전을 관리하려면 nvm-windows를 사용합니다.

# nvm-windows 설치
winget install CoreyButler.NVMforWindows

# 설치 가능한 Node.js 버전 확인
nvm list available
# 출력 예시:
# |   CURRENT   |    LTS     |
# |   23.5.0    |  22.12.0   |
# |   23.4.0    |  20.18.1   |

# Node.js LTS 설치 및 사용
nvm install 22.12.0
nvm use 22.12.0

# 설치된 버전 목록
nvm list
# 출력 예시:
#   * 22.12.0 (Currently using 64-bit executable)
#     20.18.1

# 확인
node --version   # v22.12.0
npm --version    # 10.9.2

# 글로벌 패키지 설치
npm install -g typescript tsx pnpm yarn

Python 설정

Python은 공식 설치 프로그램 또는 winget으로 설치합니다. “Add to PATH” 옵션이 중요합니다.

# winget으로 설치
winget install Python.Python.3.12

# 설치 확인
python --version   # Python 3.12.x
pip --version      # pip 24.x

# pip 업그레이드
python -m pip install --upgrade pip

# 가상 환경 생성
python -m venv D:\projects\myproject\.venv

# 가상 환경 활성화
D:\projects\myproject\.venv\Scripts\Activate.ps1
# 프롬프트가 (.venv)로 변경됨

# 유용한 글로벌 도구 설치
pip install pipx
pipx install poetry
pipx install black
pipx install ruff

Java 설정

Java는 여러 배포판(Oracle, Adoptium, Amazon Corretto 등)이 있습니다. Adoptium(Eclipse Temurin)을 권장합니다.

# Adoptium JDK 21 설치
winget install EclipseAdoptium.Temurin.21.JDK

# JAVA_HOME 설정
[Environment]::SetEnvironmentVariable("JAVA_HOME", "C:\Program Files\Eclipse Adoptium\jdk-21", "User")

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

# 확인 (새 터미널에서)
java --version
# 출력 예시:
# openjdk 21.0.5 2024-10-15 LTS
# OpenJDK Runtime Environment Temurin-21.0.5+11 (build 21.0.5+11-LTS)

javac --version
# javac 21.0.5

빌드 도구 설치

C/C++ 컴파일러나 Make 같은 빌드 도구가 필요한 경우가 있습니다.

# Visual Studio Build Tools (C/C++ 컴파일러)
winget install Microsoft.VisualStudio.2022.BuildTools

# 설치 후 "Desktop development with C++" 워크로드 선택 필요
# 또는 명령줄로:
# vs_buildtools.exe --add Microsoft.VisualStudio.Workload.VCTools

# GNU Make (Chocolatey로)
choco install make -y

# CMake
winget install Kitware.CMake

# Rust
winget install Rustlang.Rust.MSVC
# 확인:
rustc --version
cargo --version

개발 환경 자동 설정 스크립트

새 PC에서 개발 환경을 빠르게 구축하기 위한 자동화 스크립트입니다.

# setup-dev-env.ps1
# 관리자 권한으로 실행 필요

Write-Host "=== Windows 개발 환경 자동 설정 ===" -ForegroundColor Cyan

# 1. 기본 도구 설치
$tools = @(
    "Git.Git",
    "Microsoft.VisualStudioCode",
    "Microsoft.WindowsTerminal",
    "CoreyButler.NVMforWindows",
    "Python.Python.3.12",
    "EclipseAdoptium.Temurin.21.JDK",
    "Docker.DockerDesktop"
)

foreach ($tool in $tools) {
    Write-Host "설치: $tool" -ForegroundColor Yellow
    winget install $tool --silent --accept-package-agreements
}

# 2. 환경변수 설정
Write-Host "환경변수 설정 중..." -ForegroundColor Yellow
[Environment]::SetEnvironmentVariable("JAVA_HOME", "C:\Program Files\Eclipse Adoptium\jdk-21", "User")

# 3. Git 기본 설정
Write-Host "Git 설정 중..." -ForegroundColor Yellow
git config --global core.autocrlf true
git config --global core.editor "code --wait"
git config --global init.defaultBranch main

# 4. VS Code 확장 설치
$extensions = @(
    "ms-python.python",
    "dbaeumer.vscode-eslint",
    "esbenp.prettier-vscode",
    "ms-vscode-remote.remote-wsl"
)
foreach ($ext in $extensions) {
    code --install-extension $ext
}

Write-Host "설정 완료! 터미널을 재시작하세요." -ForegroundColor Green

PATH 문제 해결

PATH 관련 문제는 Windows 개발 환경에서 가장 흔한 문제입니다.

# 명령어를 찾을 수 없을 때: PATH에 실행 파일 경로가 있는지 확인
where.exe python
# 출력이 없으면 PATH에 Python 경로가 없는 것

# PATH 중복 제거
$paths = [Environment]::GetEnvironmentVariable("Path", "User") -split ';' | Select-Object -Unique
[Environment]::SetEnvironmentVariable("Path", ($paths -join ';'), "User")

# PATH 길이 확인 (Windows는 최대 2048자 제한이 있을 수 있음)
$env:PATH.Length
# 1024 이상이면 불필요한 경로 정리 필요

정리

Windows 개발 환경 구축의 핵심 포인트를 정리합니다.

  • 환경변수: [Environment]::SetEnvironmentVariable()로 영구 설정, $env:로 임시 설정
  • PATH 관리: SDK 설치 후 bin 디렉토리를 PATH에 추가, 새 터미널에서 확인
  • 버전 관리자: nvm-windows(Node.js), pyenv-win(Python) 등으로 다중 버전 관리
  • 자동화: 설치 스크립트를 작성하여 Git으로 관리하면 새 PC 설정이 빠름
  • CRLF: Git의 core.autocrlf=true 설정으로 줄바꿈 문제 방지
  • Build Tools: C/C++ 네이티브 모듈이 필요한 패키지는 Visual Studio Build Tools 설치 필요

이 글이 도움이 되었나요?