Chailmon
메뉴 열기
← 전체 글로 돌아가기
만들기 수정일 2026년 5월 13일

2026 윈도우 개발자 세팅 가이드: winget, PowerShell 7, Windows Terminal, VS Code, WSL2 초기 설정 총정리

윈도우 노트북과 데스크톱을 새로 구매한 개발자를 위한 2026 개발환경 세팅 가이드입니다. winget, PowerShell 7, Windows Terminal, Git, Node.js, Python, VS Code, WSL2, Docker Desktop 설정까지 한 번에 정리했습니다.

#Windows #윈도우 #개발환경 #winget #PowerShell #Windows Terminal #VS Code #WSL2 #Docker #개발자세팅

새 윈도우 노트북이나 데스크톱을 샀다면 가장 먼저 해야 할 일은 앱을 하나씩 검색해서 설치하는 것이 아니다.

개발자라면 먼저 윈도우 개발환경의 기준점을 잡아야 한다.

  • 패키지는 무엇으로 설치하고 관리할 것인가?
  • 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

두 운영체제의 차이를 정리하면 다음과 같다.

구분macOSWindows
패키지 관리자Homebrewwinget, Scoop, Chocolatey
터미널 앱iTerm2Windows Terminal
기본 쉘zshWindows PowerShell 5.1, PowerShell 7
Linux 호환성Unix 기반WSL2 필요
파일 경로/Users/name/projectC:\Users\name\project 또는 /home/name/project
줄바꿈LFCRLF가 섞일 수 있음
Docker비교적 단순WSL2 backend 권장
Node/Python대부분 macOS 네이티브Windows 네이티브와 WSL2 선택 필요

여기서 중요한 것은 Windows가 나쁘다는 뜻이 아니다.

Windows는 개발환경 선택지가 많다.
그만큼 처음 세팅할 때 기준을 잘 잡아야 한다.

전체 세팅 순서

새 Windows 개발 장비를 세팅할 때는 아래 순서를 추천한다.

  1. Windows 버전과 업데이트 확인
  2. winget 확인
  3. Windows Terminal 설치
  4. PowerShell 7 설치
  5. 개발자용 폰트와 Oh My Posh 설정
  6. Git과 GitHub CLI 설치
  7. VS Code 설치와 기본 설정
  8. Node.js LTS 설치
  9. Python 설치
  10. WSL2와 Ubuntu 설치
  11. Docker Desktop 설치
  12. VS Code 확장 프로그램 설치
  13. GitHub SSH 연결
  14. 프로젝트 빌드 테스트
  15. 설치 목록 백업

처음부터 모든 것을 완벽하게 꾸미려고 하기보다, 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 FontWindows Terminal, Oh My Posh와 궁합이 좋음
JetBrainsMono Nerd Font가독성이 좋고 개발자에게 인기
FiraCode Nerd Fontligature를 선호하는 사람에게 좋음
Cascadia CodeMicrosoft 기본 개발자 폰트 느낌

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 faceCaskaydiaCove Nerd Font 또는 JetBrainsMono Nerd Font
Font size11~13
Acrylic material취향에 따라 Off 또는 약하게
Cursor shapeBar 또는 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

각 앱의 용도는 다음과 같다.

용도
CursorAI 코딩 에디터
Docker Desktop컨테이너 개발환경
PostmanAPI 테스트
DBeaverDB 클라이언트
PowerToys창 관리, 검색, 생산성 기능
EdgeWindows 기본 브라우저, 개발자 도구 테스트

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

보통 아래 흐름으로 진행하면 된다.

  1. GitHub.com 선택
  2. HTTPS 또는 SSH 선택
  3. 브라우저 로그인
  4. 인증 코드 입력
  5. 완료 확인

로그인 상태 확인:

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을 연다.

  1. Ctrl + Shift + P
  2. Preferences: Open User Settings (JSON) 검색
  3. 열기

아래 설정을 기본값으로 추천한다.

{
  "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용도
GitLensGit 히스토리와 blame 확인
Error Lens에러를 코드 줄에 바로 표시
Prettier코드 포맷팅
ESLintJavaScript / TypeScript 린팅
Todo TreeTODO 목록 탐색

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 IntelliSenseTailwind 클래스 자동완성
Auto Rename TagHTML/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용도
AstroAstro 문법 지원
MDXMDX 문법 지원
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용도
WSLWSL 내부 프로젝트를 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에서는 처음에 기준을 잘 잡아야 한다.

핵심은 세 가지다.

  1. Windows 네이티브 개발과 WSL2 개발을 섞지 말고 프로젝트별로 기준을 정한다.
  2. winget으로 설치와 업데이트를 관리한다.
  3. VS Code, Git, Node.js, Python, Docker의 실행 위치를 명확히 한다.

AI 코딩툴을 쓰는 시대에도 로컬 개발환경의 중요성은 줄어들지 않는다.

오히려 AI가 코드를 빠르게 만들어줄수록, 개발자는 그 코드를 실행하고, 테스트하고, 배포할 수 있는 안정적인 환경을 갖추고 있어야 한다.

새 Windows 장비를 샀다면 이 글을 체크리스트처럼 보면서 하나씩 세팅해보면 된다.


참고한 공식 문서

Related Posts

같은 카테고리의 글

같은 카테고리 글 더 보기 →