2026 윈도우 개발자 세팅 가이드: winget, PowerShell 7, Windows Terminal, VS Code, WSL2 초기 설정 총정리
윈도우 노트북과 데스크톱을 새로 구매한 개발자를 위한 2026 개발환경 세팅 가이드입니다. winget, PowerShell 7, Windows Terminal, Git, Node.js, Python, VS Code, WSL2, Docker Desktop 설정까지 한 번에 정리했습니다.
새 윈도우 노트북이나 데스크톱을 샀다면 가장 먼저 해야 할 일은 앱을 하나씩 검색해서 설치하는 것이 아니다.
개발자라면 먼저 윈도우 개발환경의 기준점을 잡아야 한다.
- 패키지는 무엇으로 설치하고 관리할 것인가?
- PowerShell과 Windows Terminal은 어떻게 세팅할 것인가?
- Git, Node.js, Python은 Windows에 직접 설치할 것인가, WSL2에 설치할 것인가?
- VS Code는 Windows 프로젝트와 WSL 프로젝트를 어떻게 나눠서 쓸 것인가?
- Docker Desktop은 어떤 조건에서 설치해야 하는가?
- macOS나 Linux와 달리 Windows에서 조심해야 할 경로, 줄바꿈, 권한 문제는 무엇인가?
이 글은 2026년에 윈도우 PC를 새로 구매한 개발자가 처음부터 끝까지 따라 할 수 있는 개발자 세팅 가이드다.
이전에 작성한 2026 맥북 개발자 세팅 가이드가 macOS 기준이었다면, 이 글은 Windows 11 개발환경을 기준으로 작성했다.
특히 요즘은 Claude Code, Cursor, ChatGPT, Gemini 같은 AI 코딩툴을 많이 쓰기 때문에 로컬 개발환경이 더 중요해졌다. AI가 코드를 잘 만들어줘도 터미널, Git, Node.js, Python, VS Code 설정이 꼬여 있으면 결국 생산성이 떨어진다.
관련해서 VS Code로 Astro 블로그 관리하는 방법과 Claude Code vs Cursor 비교 정리도 함께 보면 좋다.
이 글의 기준 환경
이 글은 아래 환경을 기준으로 작성했다.
| 항목 | 기준 |
|---|---|
| 운영체제 | Windows 11 64-bit 권장 |
| 패키지 관리자 | winget 기본, Scoop 선택 |
| 터미널 | Windows Terminal |
| 쉘 | PowerShell 7 |
| 코드 에디터 | Visual Studio Code |
| Linux 개발환경 | WSL2 + Ubuntu 선택 |
| 컨테이너 | Docker Desktop + WSL2 backend |
| Git 인증 | GitHub CLI 또는 SSH |
| 웹 개발 | Node.js LTS |
| Python 개발 | Python 3.14 또는 pyenv-win 선택 |
Windows 10에서도 일부 설정은 가능하지만, 2026년에 새 개발 장비를 세팅한다면 Windows 11을 기준으로 잡는 것을 추천한다.
특히 WSL2, Docker Desktop, Windows Terminal, PowerShell 7 조합을 안정적으로 쓰려면 최신 Windows 11이 훨씬 편하다.
맥북 개발환경과 Windows 개발환경의 가장 큰 차이
맥북에서는 보통 이런 구조를 많이 쓴다.
Homebrew + iTerm2 + zsh + VS Code
Windows에서는 이 구조가 그대로 대응되지 않는다.
Windows 개발환경은 보통 다음 구조가 된다.
winget + Windows Terminal + PowerShell 7 + VS Code + WSL2
두 운영체제의 차이를 정리하면 다음과 같다.
| 구분 | macOS | Windows |
|---|---|---|
| 패키지 관리자 | Homebrew | winget, Scoop, Chocolatey |
| 터미널 앱 | iTerm2 | Windows Terminal |
| 기본 쉘 | zsh | Windows PowerShell 5.1, PowerShell 7 |
| Linux 호환성 | Unix 기반 | WSL2 필요 |
| 파일 경로 | /Users/name/project | C:\Users\name\project 또는 /home/name/project |
| 줄바꿈 | LF | CRLF가 섞일 수 있음 |
| Docker | 비교적 단순 | WSL2 backend 권장 |
| Node/Python | 대부분 macOS 네이티브 | Windows 네이티브와 WSL2 선택 필요 |
여기서 중요한 것은 Windows가 나쁘다는 뜻이 아니다.
Windows는 개발환경 선택지가 많다.
그만큼 처음 세팅할 때 기준을 잘 잡아야 한다.
전체 세팅 순서
새 Windows 개발 장비를 세팅할 때는 아래 순서를 추천한다.
- Windows 버전과 업데이트 확인
- winget 확인
- Windows Terminal 설치
- PowerShell 7 설치
- 개발자용 폰트와 Oh My Posh 설정
- Git과 GitHub CLI 설치
- VS Code 설치와 기본 설정
- Node.js LTS 설치
- Python 설치
- WSL2와 Ubuntu 설치
- Docker Desktop 설치
- VS Code 확장 프로그램 설치
- GitHub SSH 연결
- 프로젝트 빌드 테스트
- 설치 목록 백업
처음부터 모든 것을 완벽하게 꾸미려고 하기보다, Windows 네이티브 개발과 WSL2 개발을 어떻게 나눌 것인지를 먼저 정하는 것이 중요하다.
1. Windows 버전 확인
먼저 현재 Windows 버전을 확인한다.
PowerShell 또는 Windows Terminal에서 아래 명령어를 실행한다.
winver
또는 PowerShell에서 아래 명령어를 사용할 수 있다.
Get-ComputerInfo | Select-Object WindowsProductName, WindowsVersion, OsBuildNumber
WSL2를 사용하려면 최소한 Windows 10 version 2004, build 19041 이상 또는 Windows 11이 필요하다. 하지만 새 개발 장비라면 Windows 11 최신 버전 기준으로 맞추는 것을 추천한다.
Windows 업데이트도 먼저 진행한다.
Settings → Windows Update → Check for updates
개발환경을 설치하기 전에 Windows 업데이트를 먼저 끝내두면 재부팅이나 권한 문제를 줄일 수 있다.
2. winget 확인
Windows에서 Homebrew와 가장 비슷한 기본 도구는 winget이다.
winget은 Windows Package Manager의 명령줄 도구로, 앱을 검색하고 설치하고 업데이트하고 제거하는 데 사용할 수 있다.
먼저 설치 여부를 확인한다.
winget --version
정상적으로 버전이 나오면 사용할 수 있다.
패키지를 검색할 때는 아래처럼 사용한다.
winget search vscode
설치할 때는 아래처럼 사용한다.
winget install --id Microsoft.VisualStudioCode -e
업데이트 가능한 앱 확인:
winget upgrade
전체 업데이트:
winget upgrade --all
설치된 앱 목록 확인:
winget list
Windows 11에서는 보통 winget이 기본적으로 제공되지만, 만약 명령어가 없다면 Microsoft Store에서 App Installer를 업데이트해야 할 수 있다.
3. Windows Terminal 설치
Windows 개발자라면 기본 콘솔보다 Windows Terminal을 쓰는 것이 좋다.
설치:
winget install --id Microsoft.WindowsTerminal -e
실행:
wt
Windows Terminal을 실행한 뒤 아래 경로로 이동한다.
Settings → Startup
여기서 기본 프로필을 나중에 설치할 PowerShell 7로 바꾸는 것을 추천한다.
처음에는 Windows PowerShell 5.1이 기본일 수 있다. 개발용으로는 PowerShell 7을 별도로 설치해 쓰는 편이 좋다.
4. PowerShell 7 설치
Windows에는 기본적으로 Windows PowerShell 5.1이 들어 있다.
하지만 개발환경 기준으로는 PowerShell 7을 설치해서 쓰는 것을 추천한다.
PowerShell 7은 Windows PowerShell 5.1을 덮어쓰는 것이 아니라, 별도로 설치되어 pwsh 명령어로 실행된다.
설치:
winget install --id Microsoft.PowerShell -e
설치 후 터미널을 닫았다가 다시 연다.
버전 확인:
pwsh --version
PowerShell 7 실행:
pwsh
Windows Terminal에서 기본 프로필을 PowerShell 7로 바꾸려면:
Windows Terminal → Settings → Startup → Default profile → PowerShell
또는 PowerShell 7 프로필을 선택한다.
5. Windows Terminal 폰트 추천
Windows Terminal은 기본 폰트도 나쁘지 않지만, 개발자라면 Nerd Font 계열을 설치하는 것이 좋다.
특히 Oh My Posh를 사용하면 아이콘이 깨지지 않도록 Nerd Font가 필요하다.
추천 폰트는 다음과 같다.
| 폰트 | 추천 이유 |
|---|---|
| CaskaydiaCove Nerd Font | Windows Terminal, Oh My Posh와 궁합이 좋음 |
| JetBrainsMono Nerd Font | 가독성이 좋고 개발자에게 인기 |
| FiraCode Nerd Font | ligature를 선호하는 사람에게 좋음 |
| Cascadia Code | Microsoft 기본 개발자 폰트 느낌 |
Oh My Posh를 설치한 뒤 아래 명령어로 Nerd Font를 설치할 수 있다.
oh-my-posh font install
처음에는 CaskaydiaCove Nerd Font 또는 JetBrainsMono Nerd Font를 추천한다.
폰트 설치 후 Windows Terminal에서 아래 경로로 이동한다.
Windows Terminal → Settings → Profiles → PowerShell → Appearance → Font face
여기서 설치한 Nerd Font를 선택한다.
추천 설정은 다음과 같다.
| 항목 | 추천 |
|---|---|
| Font face | CaskaydiaCove Nerd Font 또는 JetBrainsMono Nerd Font |
| Font size | 11~13 |
| Acrylic material | 취향에 따라 Off 또는 약하게 |
| Cursor shape | Bar 또는 Filled box |
| Padding | 기본값 또는 약간 여유 있게 |
Windows Terminal은 예쁘게 꾸밀 수 있지만, 오래 코딩할수록 가독성이 더 중요하다.
6. Oh My Posh 설치
macOS에서 Powerlevel10k를 많이 쓴다면, Windows PowerShell에서는 Oh My Posh를 많이 쓴다.
설치:
winget install JanDeDobbeleer.OhMyPosh -e
설치 후 터미널을 재시작한다.
버전 확인:
oh-my-posh --version
PowerShell 프로필을 확인한다.
$PROFILE
프로필 파일이 없다면 만든다.
New-Item -Path $PROFILE -Type File -Force
프로필 파일을 VS Code로 연다.
code $PROFILE
아직 VS Code를 설치하지 않았다면 메모장으로 열어도 된다.
notepad $PROFILE
프로필 파일에 아래 줄을 추가한다.
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\jandedobbeleer.omp.json" | Invoke-Expression
저장 후 PowerShell을 다시 열거나 아래 명령어를 실행한다.
. $PROFILE
아이콘이 깨져 보이면 Windows Terminal 폰트가 Nerd Font로 설정되어 있는지 다시 확인한다.
7. PowerShell 기본 모듈과 alias 설정
PowerShell은 zsh와 문법이 다르다.
macOS 글에서 쓴 alias ll="eza -al --icons" 같은 문법은 그대로 동작하지 않는다. PowerShell에서는 복잡한 alias 대신 함수를 쓰는 편이 좋다.
먼저 터미널 아이콘 표시용 모듈을 설치한다.
Install-Module -Name Terminal-Icons -Scope CurrentUser
설치 중 신뢰할 수 없는 저장소 관련 질문이 나오면 Y를 입력한다.
PowerShell 프로필을 연다.
code $PROFILE
아래 내용을 추가한다.
Import-Module Terminal-Icons
function gs { git status }
function ga { git add $args }
function gc { git commit $args }
function gp { git push }
function gl { git log --oneline --graph --decorate --all }
function ll { eza -al --icons }
function la { eza -a --icons }
function lt { eza --tree --level=2 --icons }
function nrd { npm run dev }
function nrb { npm run build }
function ni { npm install }
Set-Alias cat bat
Set-Alias cls Clear-Host
이 함수들을 쓰려면 eza, bat가 설치되어 있어야 한다. 아래에서 함께 설치한다.
적용:
. $PROFILE
8. 개발자 기본 패키지 설치
이제 기본 개발 도구를 설치한다.
winget install --id Git.Git -e
winget install --id GitHub.cli -e
winget install --id OpenJS.NodeJS.LTS -e
winget install --id Python.Python.3.14 -e
winget install --id Microsoft.VisualStudioCode -e
winget install --id Microsoft.WindowsTerminal -e
winget install --id Microsoft.PowerShell -e
추가로 터미널 유틸리티를 설치한다.
winget install --id BurntSushi.ripgrep.MSVC -e
winget install --id sharkdp.bat -e
winget install --id eza-community.eza -e
winget install --id jqlang.jq -e
winget install --id junegunn.fzf -e
설치 후 터미널을 닫고 다시 열어야 PATH가 반영되는 경우가 많다.
버전 확인:
git --version
gh --version
node --version
npm --version
python --version
code --version
rg --version
bat --version
eza --version
jq --version
fzf --version
명령어가 인식되지 않으면 먼저 Windows Terminal을 완전히 종료했다가 다시 열어본다.
9. GUI 개발 앱 설치
개발용 Windows 장비라면 아래 앱들도 함께 설치하면 좋다.
winget install --id Anysphere.Cursor -e
winget install --id Docker.DockerDesktop -e
winget install --id Postman.Postman -e
winget install --id Microsoft.PowerToys -e
winget install --id Microsoft.Edge -e
DB 클라이언트가 필요하다면 DBeaver를 추천한다.
winget install --id dbeaver.dbeaver -e
각 앱의 용도는 다음과 같다.
| 앱 | 용도 |
|---|---|
| Cursor | AI 코딩 에디터 |
| Docker Desktop | 컨테이너 개발환경 |
| Postman | API 테스트 |
| DBeaver | DB 클라이언트 |
| PowerToys | 창 관리, 검색, 생산성 기능 |
| Edge | Windows 기본 브라우저, 개발자 도구 테스트 |
Windows에서는 macOS의 Rectangle 대신 PowerToys의 FancyZones를 쓰면 창 배치가 편해진다.
10. Git 기본 설정
새 Windows 장비에서는 Git 사용자 정보를 먼저 설정해야 한다.
git config --global user.name "Your Name"
git config --global user.email "your-email@example.com"
예를 들어 GitHub 이메일이 chailmon@outlook.com이라면 아래처럼 설정할 수 있다.
git config --global user.name "chailmon"
git config --global user.email "chailmon@outlook.com"
기본 브랜치 이름:
git config --global init.defaultBranch main
기본 에디터:
git config --global core.editor "code --wait"
현재 설정 확인:
git config --global --list
11. Windows에서 줄바꿈 문제 정리
Windows 개발환경에서 자주 만나는 문제가 줄바꿈이다.
Windows는 기본적으로 CRLF를 많이 사용하고, macOS/Linux는 LF를 많이 사용한다.
웹 개발, Astro, Next.js, React, Node.js 프로젝트에서는 LF로 통일하는 편이 대체로 편하다.
개인 프로젝트 기준으로는 아래처럼 설정하는 것을 추천한다.
git config --global core.autocrlf false
그리고 프로젝트 루트에 .gitattributes 파일을 추가한다.
* text=auto eol=lf
이미 팀에서 정한 Git 설정이 있다면 팀 기준을 따르는 것이 우선이다.
특히 회사 프로젝트에서는 core.autocrlf를 임의로 바꾸기 전에 기존 저장소 규칙을 확인해야 한다.
12. GitHub CLI 로그인
GitHub CLI를 설치했다면 터미널에서 GitHub에 로그인할 수 있다.
gh auth login
보통 아래 흐름으로 진행하면 된다.
- GitHub.com 선택
- HTTPS 또는 SSH 선택
- 브라우저 로그인
- 인증 코드 입력
- 완료 확인
로그인 상태 확인:
gh auth status
저장소 클론:
gh repo clone username/repository-name
13. GitHub SSH 키 생성
Windows에서도 SSH 키를 만들어두면 GitHub push가 편하다.
기존 SSH 키 확인:
ls $env:USERPROFILE\.ssh
새 키 생성:
ssh-keygen -t ed25519 -C "your-email@example.com"
예:
ssh-keygen -t ed25519 -C "chailmon@outlook.com"
중간에 저장 경로를 물어보면 기본값으로 Enter를 누르면 된다.
공개키를 클립보드에 복사한다.
Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub | clip
GitHub에서 아래 경로로 이동한다.
GitHub → Settings → SSH and GPG keys → New SSH key
복사한 키를 붙여넣고 저장한다.
연결 테스트:
ssh -T git@github.com
정상적으로 연결되면 아래와 비슷한 메시지가 나온다.
Hi username! You've successfully authenticated, but GitHub does not provide shell access.
14. VS Code 설치와 PATH 확인
VS Code는 winget으로 설치한다.
winget install --id Microsoft.VisualStudioCode -e
설치 후 터미널을 재시작한다.
버전 확인:
code --version
VS Code의 Windows 설치 프로그램은 보통 code 명령어를 PATH에 추가한다. 그래도 인식되지 않으면 Windows Terminal을 닫았다가 다시 열어본다.
프로젝트 폴더에서 VS Code 실행:
code .
15. VS Code 기본 설정
VS Code에서 settings.json을 연다.
Ctrl + Shift + PPreferences: Open User Settings (JSON)검색- 열기
아래 설정을 기본값으로 추천한다.
{
"editor.fontFamily": "JetBrainsMono Nerd Font, CaskaydiaCove Nerd Font, Cascadia Code, Consolas, 'Courier New', monospace",
"editor.fontSize": 14,
"editor.lineHeight": 1.6,
"editor.tabSize": 2,
"editor.wordWrap": "on",
"editor.minimap.enabled": false,
"editor.renderWhitespace": "boundary",
"editor.formatOnSave": true,
"editor.formatOnPaste": false,
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit"
},
"files.eol": "\n",
"files.autoSave": "afterDelay",
"files.autoSaveDelay": 1000,
"files.trimTrailingWhitespace": true,
"files.insertFinalNewline": true,
"terminal.integrated.defaultProfile.windows": "PowerShell",
"terminal.integrated.fontFamily": "CaskaydiaCove Nerd Font",
"terminal.integrated.fontSize": 13,
"workbench.startupEditor": "none",
"workbench.editor.labelFormat": "short",
"explorer.confirmDelete": false,
"explorer.confirmDragAndDrop": false,
"breadcrumbs.enabled": true,
"git.confirmSync": false,
"git.autofetch": true,
"security.workspace.trust.untrustedFiles": "open"
}
Windows에서는 "files.eol": "\n" 설정이 꽤 중요하다.
이 설정을 해두면 새 파일을 만들 때 LF 줄바꿈을 기본으로 사용할 수 있다.
16. VS Code 추천 확장 프로그램
VS Code 확장 프로그램은 너무 많이 설치하면 오히려 느려질 수 있다. 처음에는 꼭 필요한 것 위주로 설치하는 것을 추천한다.
16-1. 공통 개발 확장 프로그램
code --install-extension eamodio.gitlens
code --install-extension usernamehw.errorlens
code --install-extension esbenp.prettier-vscode
code --install-extension dbaeumer.vscode-eslint
code --install-extension gruntfuggly.todo-tree
| Extension | 용도 |
|---|---|
| GitLens | Git 히스토리와 blame 확인 |
| Error Lens | 에러를 코드 줄에 바로 표시 |
| Prettier | 코드 포맷팅 |
| ESLint | JavaScript / TypeScript 린팅 |
| Todo Tree | TODO 목록 탐색 |
16-2. 웹 개발 확장 프로그램
code --install-extension bradlc.vscode-tailwindcss
code --install-extension formulahendry.auto-rename-tag
code --install-extension christian-kohler.path-intellisense
code --install-extension naumovs.color-highlight
| Extension | 용도 |
|---|---|
| Tailwind CSS IntelliSense | Tailwind 클래스 자동완성 |
| Auto Rename Tag | HTML/JSX 태그 동시 수정 |
| Path Intellisense | 파일 경로 자동완성 |
| Color Highlight | 색상 코드 미리보기 |
16-3. Astro / MDX 블로그용 확장 프로그램
Astro 블로그를 운영한다면 아래 확장 프로그램을 설치한다.
code --install-extension astro-build.astro-vscode
code --install-extension unifiedjs.vscode-mdx
code --install-extension yzhang.markdown-all-in-one
| Extension | 용도 |
|---|---|
| Astro | Astro 문법 지원 |
| MDX | MDX 문법 지원 |
| Markdown All in One | 마크다운 작성 보조 |
관련 글: VS Code로 Astro 블로그 관리하는 방법
16-4. WSL 개발 확장 프로그램
WSL2를 사용할 계획이라면 아래 확장 프로그램은 거의 필수다.
code --install-extension ms-vscode-remote.remote-wsl
code --install-extension ms-vscode-remote.remote-containers
| Extension | 용도 |
|---|---|
| WSL | WSL 내부 프로젝트를 VS Code로 열기 |
| Dev Containers | 컨테이너 기반 개발환경 |
WSL 프로젝트는 Windows 폴더에서 여는 것보다 WSL 내부 경로에서 여는 것이 좋다.
예:
/home/username/projects/my-app
VS Code에서 WSL 프로젝트를 열 때는 WSL 터미널 안에서 아래처럼 실행한다.
code .
16-5. AI 코딩 확장 프로그램
AI 코딩을 적극적으로 쓴다면 아래도 고려할 수 있다.
code --install-extension github.copilot
code --install-extension github.copilot-chat
code --install-extension continue.continue
Cursor를 메인으로 쓴다면 VS Code에 AI 확장 프로그램을 너무 많이 설치하지 않아도 된다.
VS Code는 일반 개발과 블로그 관리용, Cursor는 AI 코딩용으로 나눠 쓰는 것도 좋은 방식이다.
17. Node.js 설치: Windows 네이티브 vs WSL2
Windows에서 Node.js를 설치할 때 가장 중요한 질문은 이것이다.
Windows에 직접 설치할 것인가, WSL2 안에 설치할 것인가?
선택 기준은 아래처럼 보면 된다.
| 상황 | 추천 |
|---|---|
| Astro 블로그, React, Vite, 간단한 웹 개발 | Windows 네이티브 Node.js도 충분 |
| Linux 서버와 최대한 비슷한 환경 | WSL2 Node.js 추천 |
| Docker와 함께 개발 | WSL2 추천 |
| Windows 앱, Electron, 로컬 GUI 연동 | Windows 네이티브 추천 |
| 회사 프로젝트가 Linux 기준 | WSL2 추천 |
처음 개발을 시작하는 사람이라면 Windows 네이티브 Node.js로 시작해도 충분하다.
다만 Docker, 백엔드, Linux 배포 환경과 맞춰야 한다면 WSL2 안에서 Node.js를 설치하는 것이 더 좋다.
18. Windows 네이티브 Node.js 설치
가장 단순한 방법은 LTS 버전을 설치하는 것이다.
winget install --id OpenJS.NodeJS.LTS -e
터미널 재시작 후 확인:
node --version
npm --version
간단한 테스트 프로젝트를 만든다.
mkdir $env:USERPROFILE\Dev\playground
cd $env:USERPROFILE\Dev\playground
npm create vite@latest test-vite-app
cd test-vite-app
npm install
npm run dev
브라우저에서 안내된 주소를 열어 정상적으로 실행되는지 확인한다.
Astro 테스트:
cd $env:USERPROFILE\Dev\playground
npm create astro@latest test-astro-app
cd test-astro-app
npm install
npm run dev
19. Python 설치
2026년 기준 Windows에서는 Python 3.14 이상을 기준으로 설치하면 된다.
winget install --id Python.Python.3.14 -e
설치 후 터미널을 재시작한다.
버전 확인:
python --version
pip --version
py --version
테스트용 가상환경을 만든다.
mkdir $env:USERPROFILE\Dev\playground\python-test
cd $env:USERPROFILE\Dev\playground\python-test
python -m venv .venv
가상환경 활성화:
.venv\Scripts\Activate.ps1
만약 스크립트 실행 정책 오류가 나오면 현재 사용자 범위에서 실행 정책을 조정할 수 있다.
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
다시 활성화한다.
.venv\Scripts\Activate.ps1
패키지 설치 테스트:
python -m pip install requests
python -c "import requests; print(requests.__version__)"
가상환경 종료:
deactivate
Python은 전역 환경에 패키지를 마구 설치하기보다 프로젝트마다 가상환경을 만들어 사용하는 편이 안전하다.
20. 여러 Python 버전이 필요할 때: pyenv-win
여러 Python 버전을 바꿔가며 써야 한다면 pyenv-win을 고려할 수 있다.
설치:
Invoke-WebRequest -UseBasicParsing -Uri "https://raw.githubusercontent.com/pyenv-win/pyenv-win/master/pyenv-win/install-pyenv-win.ps1" -OutFile "./install-pyenv-win.ps1"
& "./install-pyenv-win.ps1"
설치 후 PowerShell을 다시 열고 확인한다.
pyenv --version
설치 가능한 Python 버전 확인:
pyenv install -l
특정 버전 설치:
pyenv install 3.14.0
pyenv global 3.14.0
python --version
단순 웹 개발자라면 winget으로 Python 3.14 하나만 설치해도 충분하다. 데이터 분석이나 여러 프로젝트 버전 관리가 필요하면 pyenv-win을 고려하면 된다.
21. WSL2 설치
Windows에서 Linux 개발환경을 제대로 쓰려면 WSL2를 설치한다.
관리자 권한 PowerShell을 열고 아래 명령어를 실행한다.
wsl --install
특정 배포판을 지정하고 싶다면 Ubuntu를 설치한다.
wsl --install -d Ubuntu
설치 후 재부팅이 필요할 수 있다.
설치 상태 확인:
wsl -l -v
WSL 버전 확인:
wsl --version
업데이트:
wsl --update
기본 WSL 버전을 2로 설정:
wsl --set-default-version 2
Ubuntu 실행:
wsl
처음 실행하면 Linux 사용자 이름과 비밀번호를 설정한다.
22. WSL2 Ubuntu 기본 세팅
Ubuntu 안에서 패키지를 업데이트한다.
sudo apt update
sudo apt upgrade -y
기본 개발 도구를 설치한다.
sudo apt install -y git curl wget build-essential unzip jq ripgrep fzf
Node.js를 WSL 안에서 관리하고 싶다면 nvm을 쓰는 방법이 일반적이다.
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash
터미널을 다시 열거나 아래 명령어를 실행한다.
source ~/.bashrc
LTS Node.js 설치:
nvm install --lts
nvm use --lts
node --version
npm --version
Python 확인:
python3 --version
pip3 --version
필요하면 venv 패키지를 설치한다.
sudo apt install -y python3-venv python3-pip
23. WSL2에서 프로젝트 위치 주의
WSL2를 쓸 때 가장 중요한 점 중 하나는 프로젝트 파일 위치다.
가능하면 Linux 프로젝트는 WSL 내부에 둔다.
좋은 예:
/home/username/projects/my-app
피하는 것이 좋은 예:
/mnt/c/Users/username/Dev/my-app
Windows 파일 시스템 아래에 있는 프로젝트를 WSL에서 직접 빌드하면 파일 I/O가 느려질 수 있다.
WSL 프로젝트는 WSL 내부에 두고, VS Code의 WSL 확장으로 여는 것이 가장 편하다.
mkdir -p ~/projects
cd ~/projects
git clone git@github.com:username/repository-name.git
cd repository-name
code .
이렇게 하면 VS Code는 Windows에서 실행되지만, 프로젝트와 터미널은 WSL 내부 환경을 사용한다.
24. Docker Desktop 설치와 WSL2 설정
컨테이너 개발을 한다면 Docker Desktop을 설치한다.
winget install --id Docker.DockerDesktop -e
Docker Desktop은 WSL2 backend 사용을 권장한다.
설치 후 Docker Desktop을 실행하고 아래 설정을 확인한다.
Docker Desktop → Settings → General → Use the WSL 2 based engine
WSL 연동도 확인한다.
Docker Desktop → Settings → Resources → WSL Integration
여기서 Ubuntu 배포판 연동을 켠다.
설치 확인:
docker --version
docker compose version
테스트:
docker run hello-world
Docker Desktop은 Windows 11 64-bit Enterprise, Pro, Education 23H2 build 22631 이상 또는 Windows 10 64-bit Enterprise, Pro, Education 22H2 build 19045 환경과 WSL 2.1.5 이상을 요구한다. 또한 WSL2 사용을 위해 BIOS/UEFI에서 하드웨어 가상화가 켜져 있어야 한다.
Windows Home 사용자는 Linux containers 중심으로 사용할 수 있지만, Windows containers는 Windows Pro 또는 Enterprise 환경이 필요할 수 있다.
25. 개발 폴더 구조 추천
Windows 네이티브 개발과 WSL2 개발을 섞어 쓰면 폴더 구조가 중요하다.
Windows 네이티브 프로젝트:
mkdir $env:USERPROFILE\Dev\projects
mkdir $env:USERPROFILE\Dev\playground
mkdir $env:USERPROFILE\Dev\archive
예:
C:\Users\username\Dev\projects\chailmon-blog
WSL2 프로젝트:
mkdir -p ~/projects
mkdir -p ~/playground
mkdir -p ~/archive
예:
/home/username/projects/chailmon-blog
기준은 단순하다.
| 프로젝트 유형 | 추천 위치 |
|---|---|
| Windows 앱, Electron, 단순 프론트엔드 | Windows 파일 시스템 |
| Docker, Linux 서버 배포, 백엔드 | WSL2 내부 |
| Astro 블로그 | 둘 다 가능하지만 한쪽으로 통일 |
| 회사 Linux 기반 프로젝트 | WSL2 내부 추천 |
Astro 블로그처럼 정적 사이트라면 Windows 네이티브도 충분하다. 하지만 Cloudflare Workers, Docker, Linux CLI를 많이 쓴다면 WSL2 내부에 두는 것도 좋다.
26. PowerToys 추천 설정
PowerToys는 Windows 개발자에게 꽤 유용한 생산성 도구다.
설치:
winget install --id Microsoft.PowerToys -e
추천 기능은 다음과 같다.
| 기능 | 용도 |
|---|---|
| FancyZones | 창 레이아웃 관리 |
| PowerToys Run | 빠른 실행 |
| Keyboard Manager | 키 매핑 |
| Color Picker | 색상 추출 |
| Text Extractor | 이미지 안 텍스트 추출 |
| Awake | 화면 꺼짐 방지 |
macOS에서 Raycast, Rectangle을 쓰는 느낌을 Windows에서는 PowerToys로 어느 정도 대체할 수 있다.
특히 외부 모니터를 쓰는 개발자라면 FancyZones가 매우 유용하다.
27. Windows 개발환경 체크리스트
아래 명령어로 설치 상태를 확인한다.
# Windows
Get-ComputerInfo | Select-Object WindowsProductName, WindowsVersion, OsBuildNumber
# winget
winget --version
# Terminal / PowerShell
pwsh --version
oh-my-posh --version
# Git
git --version
git config --global --list
# GitHub CLI
gh --version
gh auth status
# Node
node --version
npm --version
# Python
python --version
pip --version
py --version
# VS Code
code --version
# WSL
wsl --version
wsl -l -v
# Docker
docker --version
docker compose version
모두 정상적으로 출력되면 기본 개발환경은 안정적으로 준비된 것이다.
28. 실제 프로젝트 빌드 테스트
예를 들어 Astro 블로그 프로젝트가 있다고 가정한다.
Windows 네이티브 환경:
cd $env:USERPROFILE\Dev\projects\chailmon-blog
npm install
npm run build
npm run dev
WSL2 환경:
cd ~/projects/chailmon-blog
npm install
npm run build
npm run dev
브라우저에서 확인:
http://localhost:4321
Windows와 WSL2 모두 localhost 연결이 잘 되는 편이지만, 가끔 방화벽이나 포트 충돌이 있을 수 있다.
포트가 이미 사용 중이면 다른 터미널에서 실행 중인 개발 서버를 종료하거나, 프로젝트 설정에서 포트를 바꾸면 된다.
29. winget 설치 목록 백업
Windows에서도 설치 목록을 백업해두면 새 장비 세팅이 쉬워진다.
설치 목록 내보내기:
winget export -o "$env:USERPROFILE\winget-packages.json"
나중에 새 장비에서 가져오기:
winget import -i "$env:USERPROFILE\winget-packages.json"
다만 모든 앱이 완벽하게 복원되는 것은 아니다.
로그인이 필요한 앱, 회사 정책으로 막힌 앱, Store 앱, 라이선스가 필요한 앱은 별도 설정이 필요할 수 있다.
30. Windows에서 피해야 할 세팅 방식
30-1. 설치 파일을 웹에서 하나씩 받아 설치하기
처음에는 편하지만 나중에 장비를 바꿀 때 매우 귀찮아진다.
가능하면 winget으로 설치하고, winget export로 목록을 남겨두는 편이 좋다.
30-2. Windows와 WSL2에 Node.js를 중복으로 깔고 섞어 쓰기
Windows 네이티브 Node.js와 WSL2 Node.js는 서로 다른 환경이다.
둘 다 설치할 수는 있지만, 프로젝트별로 어디에서 실행할지 명확히 정해야 한다.
예:
- Windows 프로젝트: PowerShell에서
npm install - WSL 프로젝트: Ubuntu 터미널에서
npm install
Windows에서 설치한 node_modules를 WSL에서 쓰거나, 반대로 WSL에서 설치한 node_modules를 Windows에서 쓰면 문제가 생길 수 있다.
30-3. WSL 프로젝트를 C 드라이브에서 빌드하기
WSL2를 쓰는 이유는 Linux 환경에 가까운 개발을 하기 위해서다.
WSL 프로젝트는 가능하면 /home/username/projects 안에 두는 것이 좋다.
30-4. 줄바꿈 설정을 무시하기
Windows에서는 CRLF와 LF 문제가 자주 생긴다.
웹 개발 프로젝트라면 .gitattributes, VS Code files.eol, Prettier 설정을 함께 잡아두는 것이 좋다.
30-5. 관리자 권한 터미널을 항상 쓰기
관리자 권한 터미널은 필요할 때만 쓰는 것이 좋다.
일반 개발, npm install, git 작업은 일반 사용자 권한으로 충분하다.
관리자 권한을 항상 쓰면 권한 꼬임이 생길 수 있다.
31. 내가 추천하는 최소 세팅 조합
처음부터 너무 많은 도구를 설치하기 싫다면 아래 조합만 먼저 설치해도 충분하다.
winget install --id Microsoft.WindowsTerminal -e
winget install --id Microsoft.PowerShell -e
winget install --id Git.Git -e
winget install --id GitHub.cli -e
winget install --id Microsoft.VisualStudioCode -e
winget install --id OpenJS.NodeJS.LTS -e
winget install --id Python.Python.3.14 -e
winget install --id Microsoft.PowerToys -e
AI 코딩까지 고려한다면:
winget install --id Anysphere.Cursor -e
컨테이너 개발이 필요하다면:
winget install --id Docker.DockerDesktop -e
WSL2가 필요하다면 관리자 PowerShell에서:
wsl --install -d Ubuntu
이 정도면 대부분의 웹 개발, 블로그 운영, AI 코딩 실험에는 충분하다.
마무리
Windows 개발환경은 예전보다 훨씬 좋아졌다.
이제는 Windows에서도 winget, Windows Terminal, PowerShell 7, VS Code, WSL2, Docker Desktop을 조합하면 꽤 안정적인 개발환경을 만들 수 있다.
다만 macOS와 달리 Windows에서는 처음에 기준을 잘 잡아야 한다.
핵심은 세 가지다.
- Windows 네이티브 개발과 WSL2 개발을 섞지 말고 프로젝트별로 기준을 정한다.
- winget으로 설치와 업데이트를 관리한다.
- VS Code, Git, Node.js, Python, Docker의 실행 위치를 명확히 한다.
AI 코딩툴을 쓰는 시대에도 로컬 개발환경의 중요성은 줄어들지 않는다.
오히려 AI가 코드를 빠르게 만들어줄수록, 개발자는 그 코드를 실행하고, 테스트하고, 배포할 수 있는 안정적인 환경을 갖추고 있어야 한다.
새 Windows 장비를 샀다면 이 글을 체크리스트처럼 보면서 하나씩 세팅해보면 된다.