WSL2 완벽 설정 가이드 — 설치, 배포판, VS Code 통합

WSL2란?

WSL2(Windows Subsystem for Linux 2)는 Windows에서 네이티브 Linux 커널을 실행하는 경량 가상화 기술입니다. WSL1이 시스템 콜을 변환하는 방식이었다면, WSL2는 실제 Linux 커널을 Hyper-V 위에서 구동합니다. 덕분에 Docker, systemd, 파일 시스템 성능 등에서 큰 개선을 가져왔습니다.

이 글에서는 WSL2 설치, Ubuntu 배포판 설정, VS Code 통합, 파일 시스템 연동까지 단계별로 정리합니다.

WSL2 설치

Windows 10(빌드 19041 이상) 또는 Windows 11이라면 단일 명령으로 설치할 수 있습니다.

# WSL 설치 (기본 배포판: Ubuntu)
wsl --install

# 설치 후 재부팅 필요
# 재부팅 후 Ubuntu 사용자명/비밀번호 설정 화면이 표시됨

# WSL 버전 확인
wsl --version
# 출력 예시:
# WSL 버전: 2.0.9.0
# 커널 버전: 5.15.133.1-1
# WSLg 버전: 1.0.59

이미 WSL1이 설치된 경우, WSL2로 업그레이드할 수 있습니다.

# 기본 WSL 버전을 2로 설정
wsl --set-default-version 2

# 기존 배포판을 WSL2로 변환
wsl --set-version Ubuntu 2

# 변환 상태 확인
wsl --list --verbose
# 출력 예시:
#   NAME      STATE    VERSION
# * Ubuntu    Running  2

배포판 관리

WSL은 여러 Linux 배포판을 동시에 설치할 수 있습니다. 용도에 따라 배포판을 나눠 사용하면 편리합니다.

# 설치 가능한 배포판 목록 조회
wsl --list --online
# 출력 예시:
# NAME                   FRIENDLY NAME
# Ubuntu                 Ubuntu
# Ubuntu-22.04           Ubuntu 22.04 LTS
# Ubuntu-24.04           Ubuntu 24.04 LTS
# Debian                 Debian GNU/Linux
# openSUSE-Leap-15.6     openSUSE Leap 15.6

# 특정 배포판 설치
wsl --install -d Ubuntu-24.04

# 기본 배포판 변경
wsl --set-default Ubuntu-24.04

# 배포판 내보내기 (백업)
wsl --export Ubuntu-24.04 D:\backup\ubuntu-24.04.tar

# 배포판 가져오기 (복원)
wsl --import Ubuntu-Restore D:\wsl\ubuntu-restore D:\backup\ubuntu-24.04.tar

초기 설정

배포판을 설치했다면 기본 패키지 업데이트와 개발 도구를 설치합니다.

# 패키지 업데이트
sudo apt update && sudo apt upgrade -y

# 기본 개발 도구 설치
sudo apt install -y build-essential curl git wget unzip

# Git 설정
git config --global user.name "이름"
git config --global user.email "email@example.com"

# Node.js 설치 (nvm 사용)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash
source ~/.bashrc
nvm install --lts
node --version
# 출력 예시: v22.11.0

VS Code 통합

VS Code의 Remote - WSL 확장을 사용하면 WSL 내부 파일을 Windows VS Code에서 직접 편집할 수 있습니다. 터미널, 디버거, 확장까지 모두 WSL 환경에서 동작합니다.

# WSL 터미널에서 VS Code 열기
code .
# 첫 실행 시 VS Code Server가 WSL 내부에 자동 설치됨

# 특정 파일 열기
code ~/project/main.py

# 특정 폴더를 VS Code로 열기
code ~/my-project

VS Code 설정에서 기본 터미널을 WSL로 지정할 수도 있습니다.

// settings.json
{
  "terminal.integrated.defaultProfile.windows": "Ubuntu (WSL)",
  "remote.WSL.fileWatcher.polling": true
}

파일 시스템 연동

WSL2에서는 Linux 파일 시스템과 Windows 파일 시스템을 상호 접근할 수 있습니다. 단, 성능 차이를 이해하고 사용해야 합니다.

# WSL에서 Windows 파일 접근
ls /mnt/c/Users/
# Windows의 C: 드라이브가 /mnt/c에 마운트됨

# Windows 바탕화면으로 이동
cd /mnt/c/Users/사용자명/Desktop

# WSL에서 Windows 프로그램 실행
explorer.exe .        # 현재 디렉토리를 Windows 탐색기로 열기
notepad.exe file.txt  # 메모장으로 파일 열기

Windows에서 WSL 파일에 접근하려면 \\wsl$ 네트워크 경로를 사용합니다.

# Windows 탐색기에서 WSL 파일 접근
# 주소창에 입력:
# \\wsl$\Ubuntu\home\사용자명

# PowerShell에서 WSL 파일 접근
dir \\wsl$\Ubuntu\home\

성능 팁: 프로젝트 파일은 **WSL 파일 시스템(~/)**에 두는 것이 좋습니다. /mnt/c/ 경로는 크로스 파일 시스템 접근이라 I/O 속도가 느립니다.

WSL 네트워크 설정

WSL2는 별도의 가상 네트워크 어댑터를 사용합니다. 포트 포워딩이나 호스트 접근 설정이 필요할 수 있습니다.

# WSL 내부 IP 확인
ip addr show eth0 | grep inet
# 출력 예시: inet 172.28.123.45/20

# Windows에서 WSL 서비스 접근
# localhost로 자동 포워딩됨 (예: WSL에서 3000 포트 서버 실행 시)
# Windows 브라우저에서 http://localhost:3000 접근 가능

.wslconfig 파일로 WSL2의 리소스를 제어할 수 있습니다.

# %UserProfile%\.wslconfig
[wsl2]
memory=8GB          # WSL2에 할당할 최대 메모리
processors=4        # 사용할 CPU 코어 수
swap=4GB            # 스왑 크기
localhostForwarding=true  # localhost 포워딩 활성화

[experimental]
autoMemoryReclaim=gradual  # 메모리 자동 회수
sparseVhd=true             # 디스크 공간 자동 회수

WSL 관리 명령어

자주 사용하는 WSL 관리 명령어를 정리합니다.

# WSL 상태 확인
wsl --status

# 실행 중인 배포판 확인
wsl --list --running

# WSL 종료 (모든 배포판)
wsl --shutdown

# 특정 배포판 종료
wsl --terminate Ubuntu

# WSL 업데이트
wsl --update

# 배포판 삭제 (주의: 데이터 모두 삭제)
wsl --unregister Ubuntu-24.04

정리

WSL2는 Windows에서 Linux 개발 환경을 구축하는 가장 효율적인 방법입니다. 핵심 포인트를 정리하면 다음과 같습니다.

  • 설치: wsl --install 한 줄로 완료, 재부팅 후 바로 사용 가능
  • 배포판: 여러 배포판 동시 운영, 내보내기/가져오기로 백업 가능
  • VS Code 통합: code . 명령으로 WSL 프로젝트를 VS Code에서 바로 편집
  • 파일 시스템: 프로젝트는 WSL 파일 시스템(~/)에 두는 것이 성능상 유리
  • 리소스 관리: .wslconfig로 메모리, CPU, 스왑 크기를 제어

WSL2와 VS Code의 조합은 Windows에서 가장 자연스러운 크로스 플랫폼 개발 경험을 제공합니다.

이 글이 도움이 되었나요?