codingstairs
노트에듀라이프연락
⌕검색⌘K
koen

Navigation

  • Intro
  • Blog
  • Life

연락하기

로그인 없이도 보낼 수 있어요. 답변이 필요하면 이메일을 함께 적어 주세요.

  • 익명 폼으로 의견 남기기 →
  • ✉ warragon112@gmail.com
  • 카카오톡 오픈채팅 ↗

© 2026 codingstairs

  • 노트
  • 에듀
  • 검색
  • 라이프
  • 연락
  • 약관
  • RSS
  • GitHub
노트›environment

WSL2 — Windows 위의 Linux

2026-04-28 게시· 2026-05-18 갱신·0회 조회

WSL2 — Windows 위의 Linux

Windows 에서 개발할 때 자주 부딪히는 자리는 "Linux 전용 도구". Docker · 일부 CLI · 셸 스크립트 · 컴파일 환경이 그렇습니다. 듀얼 부팅이나 가상 머신 없이 같은 PC 안에서 진짜 Linux 환경을 띄우는 길이 WSL2.

1. WSL 에 대한 이야기

WSL 은 Windows Subsystem for Linux 의 줄임말. 2016 년 Windows 10 Anniversary Update (1607) 에 첫 버전이 들어갔고, 2020 년 5 월 Windows 10 2004 업데이트에서 WSL2 가 정식 출시. 2022 년부터는 Microsoft Store 에서 단독 앱 (wsl --install) 으로.

세대 동작 출시
WSL1 Linux 시스템콜을 Windows API 로 변환하는 호환 계층. 2016
WSL2 진짜 Linux 커널을 Hyper-V 기반 경량 VM 으로 실행. 2020

WSL2 가 압도적으로 호환성이 좋고 일반 권장 기본값.

2. 설치

Windows 10 2004+ 또는 Windows 11 관리자 PowerShell 에서 한 줄:

wsl --install

이 명령이 다음을 한 번에 처리:

  1. WSL 기능 활성화.
  2. Virtual Machine Platform 활성화.
  3. 최신 Linux 커널 설치.
  4. WSL2 를 기본 버전으로 설정.
  5. Ubuntu 배포판 설치.

설치 후 재부팅. 시작 메뉴의 "Ubuntu" 또는 wsl 명령으로 셸 진입.

wsl --list --online           # 사용 가능한 배포판
wsl --install -d Debian       # 다른 배포판 설치
wsl --list --verbose          # 설치된 목록과 버전
wsl --set-default Ubuntu      # 기본 배포판 지정
wsl --shutdown                # 모든 WSL 인스턴스 종료
wsl --terminate Ubuntu        # 특정 배포판만 종료
wsl --unregister Ubuntu       # 완전 제거 (데이터 사라짐)

3. WSL1 vs WSL2

항목 WSL1 WSL2
구조 Linux 시스콜 → Windows 변환 진짜 Linux 커널 (Hyper-V VM)
시스콜 호환 부분적 완전
시작 속도 즉시 1~2 초
메모리 공유 가상 메모리 풀 (동적 할당)
Linux 측 파일 I/O 느림 빠름 (ext4)
Windows 측 파일 I/O (/mnt/c) 빠름 느림 (9P 프로토콜)
Docker 미지원 지원 (Docker Desktop)
systemd 미지원 지원 (2022~)
GPU 미지원 CUDA · DirectX 지원
wsl --set-version Ubuntu 2
wsl --set-default-version 2

4. 파일 시스템 — 어디에 코드를 두는가

위치 어디서 빠른가 권장
\\wsl$\Ubuntu\home\user\project (Linux 측) Linux 도구 Linux 도구 위주.
C:\Users\name\project (/mnt/c/...) Windows 도구 Windows 도구 위주.

두 영역을 가로지르는 I/O 가 가장 느림. Node 의 npm install, Git 작업처럼 작은 파일이 수만 개 만들어지는 작업은 양쪽을 섞으면 체감이 크게 떨어집니다.

권장 — Linux 도구를 쓸 코드는 WSL 내부 (~/) 에, Windows 도구만 쓸 코드는 C:\ 에. 한 프로젝트가 양쪽 도구를 모두 쓰면 WSL 내부에 두고 Windows 측은 VS Code 를 통해 접근.

5. VS Code 통합

Remote - WSL 확장이 표준. WSL 셸에서:

cd ~/project
code .

VS Code 가 자동으로 WSL 측에 서버를 띄우고 Windows 측 UI 가 그것에 붙습니다. 확장·터미널·디버거 모두 Linux 측에서 실행되므로 경로·줄바꿈·실행 비트 같은 자리가 자연스러움. 윈도우 왼쪽 아래에 WSL: Ubuntu 표시.

6. Docker Desktop on WSL2

Docker Desktop 의 WSL2 백엔드가 사실상 표준. Docker Desktop 설치 시 WSL2 통합을 활성화하면, WSL 셸에서 docker 명령이 그대로 동작.

장점:

  • Hyper-V VM 의 무거움 없이 시작이 빠름.
  • WSL 안의 다른 배포판에서도 같은 Docker 를 공유.
  • 리소스 사용량이 윈도우 측 Hyper-V 모드보다 효율적.

.wslconfig 로 메모리·CPU 제한:

# C:\Users\<user>\.wslconfig
[wsl2]
memory=8GB
processors=4
swap=4GB

7. systemd 활성화

2022 년부터 WSL2 가 systemd 정식 지원. 일부 패키지 (Snap · 일부 서비스 데몬) 가 systemd 를 요구하는데, 이를 켜려면 /etc/wsl.conf:

[boot]
systemd=true

저장 후 PowerShell 에서 wsl --shutdown 한 번. 다음 실행 시 활성화.

8. 다른 옵션

  • Hyper-V VM — 전통적 가상 머신. 무겁지만 격리 강함.
  • VirtualBox — Oracle. 다른 호스트 OS 도 가능.
  • VMware Workstation — 상용 가상 머신.
  • Multipass — Canonical 의 Ubuntu VM 도구.
  • Cygwin · MSYS2 · Git Bash — Windows 위에서 GNU 도구 흉내. 진짜 Linux 아님.
  • 듀얼 부팅 — 가장 빠르지만 작업 흐름 분리가 큰 비용.

WSL2 는 Microsoft 가 직접 만들어 통합도가 높고, 윈도우 일상 작업과 함께 쓰기에 마찰이 적습니다.

9. 자주 쓰는 명령

# WSL 안에서 (Ubuntu 가정)
sudo apt update && sudo apt upgrade -y
sudo apt install -y git curl build-essential

# Windows 측 파일 접근
ls /mnt/c/Users/<name>/Documents

# Windows 클립보드와 연동
echo "hello" | clip.exe

# Windows 명령 실행
cmd.exe /c "echo Hello from cmd"
powershell.exe -c "Get-ChildItem"

# 브라우저 열기
explorer.exe https://example.com

# WSL 측 IP 확인
hostname -I
# Windows 측에서
wsl ls -la /home/user
wsl --user user -d Ubuntu bash -c "cd /home/user/project && pnpm install"
copy file.txt \\wsl$\Ubuntu\home\user\

10. 자주 걸리는 자리

두 영역 가로지르는 I/O — 가장 큰 함정. 대규모 디렉터리는 WSL 내부에.

줄바꿈 — Git 의 core.autocrlf 가 활성화돼 있으면 WSL 안에서 체크아웃 시 CRLF 가 섞일 수 있음. .gitattributes 의 * text=auto eol=lf 가 안전.

실행 비트 — Windows 측에 둔 .sh 가 실행 권한이 없는 채로 보입니다. chmod +x 가 효과 없을 때 git update-index --chmod=+x 로 명시.

localhost 포트 — WSL2 안에서 띄운 서버는 보통 Windows 측 localhost:포트 로 접근 가능 (자동 포워딩). 안 될 땐 wsl hostname -I 로 IP 확인.

DNS — 회사망 등에서 DNS 가 꼬일 때. /etc/resolv.conf 가 자동 생성되는데, /etc/wsl.conf 의 [network] generateResolvConf=false 로 끈 후 직접 작성.

메모리 누수처럼 보이는 RAM 점유 — WSL2 의 vmmem 프로세스가 캐시를 잡고 안 놓는 경우. .wslconfig 의 memory 제한 또는 wsl --shutdown.

VHDX 디스크 회수 안 됨 — docker_data.vhdx 가 prune 으로 자동 축소되지 않는 문제 (MS WSL #4699). Optimize-VHD -Mode Full 로 회수.

GUI 앱 — WSLg (Windows 11 · Win10 2004+ 패치) 가 X 서버 없이 GUI 를 직접 지원. 그 전에는 VcXsrv · X410 같은 X 서버 별도 설치.

하고픈 말

WSL2 는 Windows 사용자에게 진짜 Linux 환경을 가장 자연스럽게 가져다줍니다. 두 영역 (WSL ↔ NTFS) 가로지르는 I/O 만 의식하면 일상 사용에 큰 마찰이 없습니다. VHDX 디스크 회수 는 운영의 별도 챙길 자리.

Next

  • (environment 끝)

Microsoft WSL · WSL GitHub · WSL Release Notes · .wslconfig · Docker Desktop WSL2 · WSLg · WSL1 vs WSL2 를 참고합니다.

environment 카테고리의 다른 글

카테고리 전체 보기 →
  • 데이터 포맷 — JSON · YAML · TOML · XML
  • 터미널 첫날
  • 텍스트 인코딩과 줄바꿈
  • Markdown
  • 크로스 플랫폼 스크립트
  • cmd.exe 와 배치 파일