들어가며: 윈도우 개발자의 오랜 고민
개발하다 보면 이런 상황, 한 번쯤 겪어보셨을 겁니다.
“이 라이브러리는 리눅스에서만 제대로 돌아간다고요?” “맥 쓰는 팀원이랑 환경이 달라서 계속 오류가 나요.” “Docker 쓰려면 리눅스가 있어야 한다는데…”
그래서 예전엔 선택지가 두 가지였습니다. 맥으로 갈아타거나, 아니면 윈도우에 리눅스를 듀얼 부팅하거나. 둘 다 번거롭죠.
그런데 이제는 WSL2라는 선택지가 생겼습니다. 윈도우를 그대로 쓰면서, 리눅스 터미널과 툴체인을 네이티브처럼 사용할 수 있는 방법입니다.
WSL2가 뭔가요?
**WSL2(Windows Subsystem for Linux 2)**는 마이크로소프트가 직접 만든 기능으로, 윈도우 안에서 진짜 리눅스 커널을 실행할 수 있게 해줍니다.
VMware나 VirtualBox 같은 가상머신과 비슷하지만, 결정적인 차이가 있습니다.
- 별도 OS 창이 뜨지 않고 터미널처럼 바로 사용합니다
- 부팅이 수 초 내에 완료됩니다
- 윈도우 파일과 자연스럽게 연동됩니다
- 메모리와 CPU를 필요한 만큼만 씁니다
쉽게 말하면, 윈도우 안에 리눅스가 들어있는 건데 체감상으론 그냥 터미널 하나 더 열린 것처럼 느껴집니다.
WSL1 vs WSL2, 뭐가 다른가요?
WSL은 1세대(WSL1)부터 시작했지만, 지금은 WSL2가 사실상 표준입니다. 차이를 간단히 보면:
| 항목 | WSL1 | WSL2 |
|---|---|---|
| 방식 | 리눅스 명령어를 윈도우 방식으로 번역 | 진짜 리눅스 커널을 실행 |
| 파일 성능 | 리눅스 파일시스템에서 느림 | 리눅스 파일시스템에서 빠름 |
| 시스템 콜 호환성 | 일부 미지원 | 완전 호환 |
| Docker | 제한적 | 완벽 지원 |
| 부팅 속도 | 빠름 | 매우 빠름 |
결론: 특별한 이유가 없다면 WSL2를 쓰세요. Docker, Python, Node.js 등 대부분의 개발 작업에서 WSL2가 훨씬 낫습니다.
시작 전 확인사항
내 윈도우가 WSL2를 지원하나요?
Win + R 키를 누르고 winver를 입력해서 버전을 확인하세요.
- Windows 11: 모든 버전 지원 ✅
- Windows 10: 버전 2004(빌드 19041) 이상 지원 ✅
- Windows 10 그 이하: 수동 설치 필요 (아래 안내 참고)
가상화(Virtualization)가 켜져 있나요?
WSL2는 경량 가상화 기술을 사용하기 때문에 BIOS에서 가상화 기능이 활성화되어 있어야 합니다. 작업 관리자(Ctrl+Shift+Esc) → 성능 탭 → CPU 항목에서 가상화: 사용 이라고 표시되는지 확인하세요.
만약 사용 안 함이라면, PC를 재부팅해서 BIOS 설정으로 들어가 Intel은 VT-x, AMD는 AMD-V(또는 SVM)를 활성화해야 합니다.
WSL2 설치하기
가장 빠른 방법: 명령어 한 줄
PowerShell을 관리자 권한으로 실행합니다. (시작 메뉴에서 PowerShell을 검색한 뒤 우클릭 → “관리자로 실행”)
그리고 아래 명령어를 입력하세요.
| |
이 명령어 하나가 아래 작업을 모두 자동으로 처리합니다.
- WSL 기능 활성화
- 가상 머신 플랫폼 활성화
- Linux 커널 업데이트
- WSL2를 기본 버전으로 설정
- Ubuntu 최신 LTS 버전 설치
설치가 완료되면 PC를 재부팅하세요. 재부팅 후 Ubuntu 창이 자동으로 열리면서 리눅스 사용자 계정을 만들라고 안내합니다. 원하는 사용자 이름과 비밀번호를 설정하면 끝입니다.
💡 이 비밀번호는
sudo명령어를 쓸 때 필요하니 기억해두세요. 윈도우 로그인 비밀번호와 다르게 설정해도 됩니다.
특정 리눅스 배포판을 설치하고 싶다면
기본값은 Ubuntu지만, 다른 배포판을 원한다면 먼저 목록을 확인하세요.
| |
출력 예시:
| |
원하는 배포판을 골라서 설치합니다.
| |
구버전 Windows 10 사용자 (빌드 18362 이상)
위 방법이 안 된다면 수동으로 기능을 활성화해야 합니다.
| |
두 명령어 실행 후 재부팅하고, Linux 커널 업데이트 패키지를 수동으로 다운로드해서 설치하세요. 그 다음 아래 명령어로 WSL2를 기본 버전으로 설정합니다.
| |
마지막으로 Microsoft Store에서 원하는 Linux 배포판을 검색해서 설치하면 됩니다.
기본 사용법 익히기
설치 상태 확인
| |
| |
* 표시가 기본 배포판입니다. VERSION이 2이면 WSL2로 실행 중입니다.
WSL 실행과 종료
| |
파일시스템 오가기
WSL과 윈도우는 서로의 파일에 자유롭게 접근할 수 있습니다.
| |
반대로 윈도우 탐색기 주소창에 \\wsl$\Ubuntu\home\ 을 입력하면 WSL 내부 파일을 탐색기에서 볼 수도 있습니다.
⚠️ 중요한 성능 팁: 프로젝트 파일은 반드시 WSL 안쪽(
~/projects/)에 저장하세요./mnt/c/경로를 통해 Windows 드라이브에 접근하면 파일 I/O 속도가 눈에 띄게 느려집니다.git clone,npm install같은 작업이 몇 배 차이 나기도 합니다.
Windows Terminal로 더 편하게 쓰기
WSL2를 제대로 활용하려면 Windows Terminal을 함께 쓰는 걸 강력히 권장합니다. Microsoft Store에서 무료로 설치할 수 있고, WSL 배포판, PowerShell, CMD를 탭으로 한 창에서 관리할 수 있습니다.
설치 후 + 버튼 옆 화살표를 누르면 설치된 WSL 배포판이 바로 목록에 보입니다.
Oh My Zsh로 터미널 업그레이드하기
기본 bash 쉘도 괜찮지만, zsh + Oh My Zsh 조합을 쓰면 자동완성, 문법 강조, 깃 상태 표시 등을 편리하게 쓸 수 있습니다.
| |
설치 완료 후 기본 쉘을 zsh로 변경할지 묻는데, y를 입력하면 됩니다.
유용한 플러그인 추가 (~/.zshrc 파일의 plugins=() 항목 수정):
| |
zsh-autosuggestions와 zsh-syntax-highlighting은 별도 설치가 필요합니다.
| |
VS Code 연동하기
WSL2를 설치했다면 VS Code와 연동하는 것이 거의 필수입니다. 설정도 굉장히 간단합니다.
설정 방법
1. VS Code에서 “WSL” 확장을 설치합니다.
확장 마켓플레이스(Ctrl+Shift+X)에서 WSL을 검색하거나, Microsoft의 Remote Development 확장 팩을 설치하면 한 번에 됩니다.
2. WSL 터미널에서 프로젝트 폴더로 이동한 뒤 아래 명령어를 실행합니다.
| |
그러면 VS Code가 WSL 모드로 자동 실행됩니다. 왼쪽 아래에 초록색으로 WSL: Ubuntu 같은 표시가 뜨면 성공입니다.
이렇게 하면 무엇이 좋은가요?
- VS Code 터미널이 WSL bash/zsh로 열립니다
- 언어 서버(LSP), 린터, 포매터가 모두 WSL 환경의 툴을 사용합니다
localhost:3000같은 포트도 자동으로 포워딩됩니다- Python, Node.js, Go 등의 실행 환경도 WSL 것을 씁니다
즉, VS Code는 윈도우에서 열리지만 실제 실행은 전부 리눅스에서 이루어집니다. 설정 파일 하나 없이 완벽한 리눅스 개발 경험을 얻을 수 있습니다.
개발 환경별 설치 가이드
Node.js 개발 환경
Node.js는 버전 관리가 중요하기 때문에 nvm을 사용하는 것을 권장합니다.
| |
Python 개발 환경
Python도 버전 관리를 위해 pyenv를 활용하는 게 좋습니다.
| |
Git 설정
WSL 안에서 Git을 쓰려면 기본 설정을 잡아주세요.
| |
Docker 연동하기
WSL2는 Docker를 가장 쾌적하게 사용할 수 있는 환경입니다.
Docker Desktop을 쓰는 경우
Docker Desktop을 설치한 뒤 아래 설정을 확인하세요.
Docker Desktop → Settings → General → Use the WSL 2 based engine 체크
이렇게 하면 Windows와 WSL 양쪽에서 docker 명령어를 동일하게 쓸 수 있습니다.
특정 WSL 배포판에서 Docker를 쓰려면 추가 설정도 필요합니다.
Docker Desktop → Settings → Resources → WSL Integration → 사용할 배포판 토글 ON
Docker Desktop 없이 직접 설치하는 경우
개인 프로젝트나 소규모 팀은 Docker를 WSL 안에 직접 설치하는 방법도 있습니다.
| |
참고: 2026년 기준 Docker Desktop은 직원 250명 초과 또는 연매출 $10M 이상인 기업에서 유료 라이선스가 필요합니다. 개인 개발자와 소규모 팀은 무료입니다.
WSL2 세부 설정 다듬기
.wslconfig: 리소스 한도 설정
WSL2는 기본적으로 시스템 메모리의 50%까지 사용할 수 있습니다. 메모리가 부족하거나 WSL에 너무 많이 할당하고 싶지 않다면 조정할 수 있습니다.
Windows의 사용자 홈 폴더(C:\Users\사용자명\)에 .wslconfig 파일을 만들고 아래 내용을 작성하세요.
| |
설정 변경 후엔 wsl --shutdown으로 WSL을 재시작해야 적용됩니다.
wsl.conf: 배포판별 설정
WSL 배포판 내부(/etc/wsl.conf)에서 해당 배포판의 동작을 세부 설정할 수 있습니다.
| |
| |
systemd 활성화를 하면
systemctl명령어로 서비스를 관리할 수 있어, 일반 리눅스 서버처럼 사용하기가 훨씬 편해집니다. Docker나 Nginx 같은 서비스를 부팅 시 자동 시작하게 설정할 수도 있습니다.
GPU 활용하기 (머신러닝 / AI 개발)
NVIDIA 그래픽카드가 있다면 WSL2에서도 GPU를 직접 쓸 수 있습니다. TensorFlow, PyTorch 등 딥러닝 프레임워크도 그대로 돌아갑니다.
설정 순서
1단계: Windows에 최신 NVIDIA 드라이버를 설치합니다.
2단계: WSL2를 업데이트합니다.
| |
3단계: WSL2 안에서 CUDA 툴킷을 설치합니다. (Ubuntu 22.04 기준)
| |
⚠️ 주의: WSL2 내부에 NVIDIA GPU Linux 드라이버를 별도로 설치하면 안 됩니다. Windows 드라이버가 자동으로 WSL2에 연결됩니다. CUDA 툴킷만 설치하면 됩니다.
자주 쓰는 명령어 모음
WSL 관리 명령어
| |
배포판 백업 및 복원
| |
자주 발생하는 문제 해결
문제 1: 설치 중 “0x80070003” 또는 “0x80070057” 오류
BIOS에서 가상화(Virtualization)가 꺼져 있을 가능성이 큽니다. PC를 재부팅해서 BIOS로 진입한 다음, Intel CPU라면 VT-x, AMD CPU라면 AMD-V(또는 SVM Mode)를 Enabled로 바꿔주세요.
문제 2: wsl 명령어가 없다고 나와요
PowerShell을 관리자 권한으로 실행했는지 확인하세요. 또는 Windows 기능 켜기/끄기에서 “Linux용 Windows 하위 시스템"이 체크되어 있는지 확인하세요.
문제 3: 파일 작업이 너무 느려요
/mnt/c/, /mnt/d/ 같은 경로는 윈도우 NTFS 파일시스템에 접근하는 거라 느립니다. 프로젝트를 WSL 내부(~/projects/)로 옮기면 눈에 띄게 빨라집니다.
| |
문제 4: WSL2 메모리를 너무 많이 먹어요
WSL2는 사용한 메모리를 자동으로 반환하지 않는 경우가 있습니다. .wslconfig에서 메모리 상한선을 설정하거나, 사용 후 wsl --shutdown으로 완전히 종료하면 메모리가 바로 반환됩니다.
문제 5: VPN을 쓰면 인터넷이 안 돼요
WSL2는 기본적으로 NAT 방식을 써서, VPN을 켜면 WSL2의 네트워크가 끊기는 경우가 있습니다. .wslconfig에 아래 옵션을 추가해 보세요. (Windows 11 22H2 이상)
| |
문제 6: systemctl 명령어가 안 돼요
/etc/wsl.conf에 systemd=true 설정이 있는지 확인하고, wsl --shutdown 후 재시작하세요.
마치며
WSL2는 윈도우 개발 환경에서 정말 큰 변화를 가져다줍니다. 예전처럼 리눅스 전용 툴을 못 쓰거나, 맥과 다른 환경 때문에 고생하는 일이 크게 줄어듭니다.
처음 설치할 때는 조금 낯설게 느껴질 수 있지만, 익숙해지면 윈도우와 리눅스의 장점을 동시에 누릴 수 있습니다. 특히 VS Code + WSL2 + Docker 조합은 2026년 현재 윈도우에서 쓸 수 있는 가장 강력한 개발 환경 중 하나라고 자신 있게 말할 수 있습니다.
wsl --install 하나로 시작해 보세요. 생각보다 훨씬 쉽습니다.
참고 자료