Windows 11 개발자 초기 셋업 — 새 PC를 받았을 때 첫 1시간
Windows 11을 받자마자 winget·WSL2·Git·SSH 기반 개발 환경을 깔끔하게 만드는 단일 경로.
Windows로 개발한다면 보통 두 갈래다 — (a) WSL2 안에서 Linux로 다 끝낸다, (b) PowerShell + Git Bash로 네이티브 Windows에서 한다. 이 가이드는 둘 다 깔아두고 케이스별로 골라 쓰는 셋업을 목표로 한다. 본업이 Node/Go/Python이라면 WSL2가 압도적으로 편하고, .NET·게임·Tauri·Win32 API는 네이티브가 답이다.
대상은 Windows 11 (22H2 이상) + winget 사용 가능 환경. Windows 10은 동일하게 동작하나 winget 일부 동작이 다를 수 있다.
TL;DR
- Windows 11 시스템 설정 4개 (Explorer 확장자·숨김 파일, 클립보드 히스토리, 가상 데스크톱 단축키)
- winget으로 필수 도구 8개 한 줄 설치 (Git, GH CLI, Windows Terminal, PowerShell 7, VS Code, mise, ripgrep, fzf)
- WSL2 + Ubuntu 24.04 설치 —
wsl --install -d Ubuntu-24.04 - Git 글로벌 설정 + SSH ed25519 키 → GitHub 등록 →
gh auth login
사전 조건
- Windows 11 22H2 이상 —
winver명령으로 버전 확인. winget이 기본 포함된 첫 빌드 - 관리자 권한 — WSL2 설치, 일부 winget 패키지 시스템 설치 시 필요
- 인터넷 연결 + Microsoft 계정 (Windows 11 Home은 사실상 필수)
- 하드웨어 가상화 — BIOS/UEFI에서 Intel VT-x 또는 AMD-V 활성화 (WSL2 필수). 보통 기본 ON
확인 방법:
systeminfo | findstr /C:"Hyper-V"— "Hyper-V Requirements"가 모두 Yes면 OK.
1. Windows 11 시스템 설정 — 5분
1.1 Explorer — 숨김 파일·확장자·전체 경로 표시
Win + E로 Explorer를 열고 View → Show → File name extensions + Hidden items 둘 다 체크. 또는 PowerShell에서 한 번에:
# 확장자 + 숨김 파일 표시
Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name HideFileExt -Value 0
Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name Hidden -Value 1
# Explorer 재시작으로 즉시 반영
Stop-Process -Name explorer -Force1.2 클립보드 히스토리 (Win + V)
매우 유용한데 기본 비활성화. Settings → System → Clipboard → Clipboard history ON.
1.3 가상 데스크톱 단축키
Ctrl + Win + ←/→ — 가상 데스크톱 전환. 기본 동작이지만 처음 쓰는 사람은 모른다. macOS의 swipe-between-spaces 대응.
1.4 PowerToys (선택, 강력 권장)
마이크로소프트 공식 생산성 도구 모음. winget으로 한 줄:
winget install Microsoft.PowerToys --source winget --silent핵심: FancyZones(창 분할 — Rectangle 대응), PowerToys Run(Alt + Space — Raycast 대응), Keyboard Manager(키 재매핑).
2. winget — 패키지 매니저 확인
Windows 11은 winget이 기본 포함이지만, 너무 오래된 빌드면 업그레이드가 필요할 수 있다.
winget --version
# v1.x.x ← 출력되면 OK없거나 오래됐다면 Microsoft Store에서 "App Installer"를 업데이트한다. winget은 그 안에 들어있다.
자동화 스크립트 (선택)
수동 따라가는 대신 한 번에 실행하고 싶다면 — 단, 외부 스크립트는 항상 다운로드 → SHA-256 검증 → 코드 검사 → 실행 순서로.
setup-windows.ps1# 1. 다운로드 (PowerShell)
Invoke-WebRequest -Uri https://devalice.jaceclub.com/assets/windows/initial-setup/setup-windows.ps1 -OutFile setup-windows.ps1
# 2. SHA-256 검증
Get-FileHash setup-windows.ps1 -Algorithm SHA256
# 기대값: 75a9a5cc7b8804cf0808971a648b7174dade3a5f32f2db9c80a9783242eeeebd
# 3. 코드 검사
notepad setup-windows.ps1
# 4. 실행 (현재 세션에 한해 실행 정책 완화)
PowerShell -ExecutionPolicy Bypass -File .\setup-windows.ps1스크립트는 idempotent — 중간에 실패하거나 부분 진행 후 재실행해도 안전. 본문 3~5단계 중 winget 설치·Git 설정·SSH 키 생성까지 자동, WSL2 설치와 GitHub 등록은 수동 단계로 안내.
직접 이해하며 따라가고 싶다면 아래로.
3. winget 필수 도구 — 10분
3.1 핵심 8개 한 줄로
winget install --silent --accept-source-agreements --accept-package-agreements `
Git.Git `
GitHub.cli `
Microsoft.WindowsTerminal `
Microsoft.PowerShell `
Microsoft.VisualStudioCode `
jdx.mise `
BurntSushi.ripgrep.MSVC `
junegunn.fzf| 패키지 | 용도 |
|---|---|
Git.Git | Git for Windows (Git Bash 동봉) |
GitHub.cli | gh 명령 |
Microsoft.WindowsTerminal | 탭 기반 터미널 — 기본 콘솔보다 압도적으로 좋음 |
Microsoft.PowerShell | PowerShell 7 (기본은 5.1, 7이 훨씬 개선됨) |
Microsoft.VisualStudioCode | VS Code |
jdx.mise | 런타임 버전 관리 (Node·Python 등) |
BurntSushi.ripgrep.MSVC | rg — grep 대체 |
junegunn.fzf | fuzzy finder |
일부 패키지는 처음 설치 시 PATH 갱신을 위해 새 터미널 창을 열어야 한다.
3.2 검증
git --version
gh --version
pwsh --version # PowerShell 7
code --version
mise --version
rg --version3.3 Windows Terminal을 기본 터미널로
Settings → Privacy & security → For developers → Terminal → Windows Terminal 선택. 이제 어디서든 콘솔이 뜨면 Windows Terminal로 열린다.
4. WSL2 + Ubuntu — 10분
본격 Linux 워크플로를 쓸 거면 WSL2가 1순위. Node·Python·Docker 모두 WSL2 안에서가 훨씬 매끄럽다.
4.1 설치
관리자 PowerShell(우클릭 → "Run as administrator")에서:
wsl --install -d Ubuntu-24.04이 한 줄이:
- WSL 기능 활성화
- 가상 머신 플랫폼 활성화
- WSL2를 기본 버전으로 설정
- Ubuntu 24.04 다운로드·설치
설치 끝나면 재부팅 한 번 필요. 재부팅 후 Ubuntu가 자동 실행되며 사용자명·비밀번호를 묻는다.
4.2 첫 실행 후 정리
Ubuntu 셸 안에서:
sudo apt update && sudo apt upgrade -y
sudo apt install -y build-essential git curl unzipVS Code와 통합하려면 Ubuntu 안에서:
code . # WSL Remote 확장이 자동 설치되며 VS Code가 WSL 모드로 열린다WSL 폴더는 Explorer에서
\\wsl$\Ubuntu-24.04\home\<user>로 접근 가능. 다만 Linux 파일 I/O 성능은 WSL 안 경로(/home/...)에서 작업할 때 가장 빠르다. Windows 측 경로(/mnt/c/...)에 코드를 두면 느려진다.
4.3 WSL 상태 확인
PowerShell에서:
wsl --status
wsl --list --verbose
# NAME STATE VERSION
# Ubuntu-24.04 Running 25. Git 글로벌 + SSH 키 — 10분
WSL과 Windows는 각각 별도 git 설정을 가진다. 둘 다 셋업하는 것을 권장.
5.1 Windows 측 Git 설정 (PowerShell)
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
git config --global init.defaultBranch main
git config --global pull.rebase false
git config --global core.autocrlf true # Windows 줄바꿈 자동 변환
git config --global core.editor "code --wait"5.2 SSH 키 생성 — ed25519
ssh-keygen -t ed25519 -C "you@example.com"
# 저장 위치: 기본값 ($env:USERPROFILE\.ssh\id_ed25519) Enter
# Passphrase: 선택ssh-agent 서비스 시작 + 키 등록 (관리자 PowerShell):
# Service를 자동 시작으로
Set-Service -Name ssh-agent -StartupType Automatic
Start-Service ssh-agent
# 키 추가
ssh-add $env:USERPROFILE\.ssh\id_ed255195.3 GitHub에 공개키 등록
Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub | Set-Clipboard브라우저에서 https://github.com/settings/ssh/new → Title: "Windows 11 (PC명)" → Key 붙여넣기 → Add SSH key.
5.4 gh CLI 인증
gh auth login
# GitHub.com → HTTPS → Y (Git 인증 사용) → Login with a web browser5.5 WSL 측 Git 설정 (선택, WSL을 메인으로 쓴다면)
Ubuntu 셸 안에서 동일한 명령을 다시:
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
git config --global init.defaultBranch main
ssh-keygen -t ed25519 -C "you@example.com"
# 공개키 출력 → GitHub에 별도로 등록 (Windows 키와 분리 권장 — 머신 식별 명확)
cat ~/.ssh/id_ed25519.pub팁: WSL과 Windows에서 SSH 키를 공유하고 싶다면, Windows 키(
%USERPROFILE%\.ssh)를 WSL의~/.ssh에 심볼릭 링크하는 방법이 있다. 단, 권한 처리에서 종종 사고가 나므로 키를 따로 두는 편이 안전하다.
6. 검증 — 모든 게 잘 깔렸나?
PowerShell에서:
Write-Host "--- Versions ---"
[System.Environment]::OSVersion.Version
git --version
gh --version | Select-Object -First 1
pwsh --version
wsl --list --verbose
Write-Host "--- GitHub auth ---"
ssh -T git@github.com 2>&1 | Select-Object -First 1
gh auth status 2>&1 | Select-Object -First 3기대 출력:
--- Versions ---
Major Minor Build
----- ----- -----
10 0 22631 (Windows 11 22H2 이상)
git version 2.x.x.windows.x
gh version 2.x.x
PowerShell 7.x.x
NAME STATE VERSION
Ubuntu-24.04 Running 2
--- GitHub auth ---
Hi <your-username>! You've successfully authenticated, ...
github.com
✓ Logged in to github.com account <your-username>
WSL 측까지 검증하려면 Ubuntu 셸에서:
git --version
ssh -T git@github.com 2>&1 | head -17. 트러블슈팅
wsl --install이 "0x80070003" 또는 가상화 에러
BIOS에서 VT-x/AMD-V가 꺼져 있다. 메인보드 매뉴얼대로 BIOS 진입 → CPU Configuration → Virtualization Technology → Enabled → 저장 후 재부팅.
winget이 "command not found"
App Installer가 안 깔려 있거나 매우 오래된 버전. Microsoft Store에서 "App Installer" 검색 → 업데이트/설치.
PowerShell 스크립트 실행 정책 차단
.\setup-windows.ps1 : File ... cannot be loaded because running scripts is disabled on this system.
현재 세션에 한해서만 우회:
PowerShell -ExecutionPolicy Bypass -File .\setup-windows.ps1영구 변경하려면 (사용자 권한):
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSignedGit push 시 "Permission denied (publickey)"
ssh-add -l # 키가 ssh-agent에 있는지
ssh -vT git@github.com 2>&1 | Select -Last 20ssh-agent서비스가 중지됐을 수 있음 →Start-Service ssh-agent- 공개키가 GitHub에 등록 안 됐을 수 있음 →
https://github.com/settings/keys확인
WSL 안에서 시간이 미래/과거로 어긋남
대기 모드 후 종종 발생. WSL 안에서:
sudo hwclock -swinget이 어떤 패키지를 "found multiple packages" 에러로 거부
ID 충돌. --id 옵션을 명시:
winget install --id Git.Git --exactWindows Terminal에서 한글이 깨짐
Settings (Ctrl + ,) → 해당 프로필 → Appearance → Font face → Cascadia Mono 또는 D2Coding 같은 한글 지원 폰트.
8. 다음 단계
이 가이드는 "Windows 11에서 git push할 수 있는 최소 셋업"까지였다. 그다음은:
- WSL2 고급 활용 — Docker Desktop ↔ WSL2 통합, 메모리 제한 (
%USERPROFILE%\.wslconfig) —/windows/wsl-tuning(준비 중) - 개발 도구 — 언어 런타임(Node·Python), 에디터 확장 —
/windows/developer-tools(준비 중) - AI Agent 환경 — Claude Code 셋업은 /ai-agents/claude-code 참조
- Mac과 동시 사용 — 입력 공유·파일 동기화 —
/multi-os/input-sharing(준비 중)
참고 링크
변경 이력
- 2026-05-11 — 초안 (devAlice M0 세 번째 시드 컨텐츠)