들어가며
이전 차시에서 Claude Code를 설치하고 로그인까지 완료했다. macOS와 Linux 사용자는 바로 사용할 수 있지만, Windows 사용자는 한 가지 더 준비할 것이 있다.
Claude Code는 macOS와 Linux에서 최적의 성능을 발휘한다. Windows에서도 Git Bash를 통해 사용할 수 있지만, 샌드박싱 같은 보안 기능은 Linux 환경에서만 완전히 동작한다. Windows에서 Linux 환경을 사용하는 방법이 바로 WSL(Windows Subsystem for Linux)이다.
이번 차시에서는 WSL이 무엇인지, WSL1과 WSL2가 어떻게 다른지 알아보고, 설치까지 진행한다.
WSL(Windows Subsystem for Linux)이란
WSL은 Windows에서 Linux를 직접 실행할 수 있게 해주는 기술이다. 듀얼 부팅이나 가상 머신 없이 Windows 안에서 Linux 명령줄 도구, 애플리케이션, 유틸리티를 사용할 수 있다.
WSL이 필요한 이유
Claude Code는 내부적으로 Bash 명령을 실행한다. macOS와 Linux에는 Bash가 기본으로 포함되어 있지만, Windows에는 없다. Windows에서 Claude Code를 사용하려면 두 가지 방법이 있다.
- Git Bash: Git for Windows를 설치하면 함께 제공된다. Claude Code가 내부적으로 Git Bash를 사용해서 명령을 실행한다.
- WSL: Windows 안에 Linux 환경을 설치한다. Linux 네이티브 환경에서 Claude Code를 실행할 수 있다.
Git Bash만으로도 Claude Code를 사용할 수 있다. 하지만 WSL을 사용하면 몇 가지 중요한 이점이 있다.
- 샌드박싱 지원: Claude Code의 샌드박싱 기능은 Linux의 bubblewrap을 사용한다. WSL 2에서만 이 기능이 동작한다
- 전체 시스템 호출 호환성: 실제 Linux 커널을 사용하기 때문에 모든 Linux 도구가 정상 동작한다
- 파일 시스템 성능: Linux 파일 시스템 내에서 작업하면 Git, npm 등의 성능이 크게 향상된다
WSL의 주요 특징
- 듀얼 부팅 불필요: Windows를 재시작하지 않고 Linux를 사용할 수 있다
- 경량: 전체 가상 머신보다 적은 리소스(CPU, 메모리, 스토리지)를 사용한다
- 파일 시스템 통합: Windows 파일 시스템을 Linux에서
/mnt/c로 접근할 수 있다 - 빠른 시작: 가상 머신과 달리 몇 초 안에 시작된다
WSL1과 WSL2 비교
WSL에는 두 가지 버전이 있다. WSL1과 WSL2는 아키텍처가 근본적으로 다르다.
아키텍처 차이
WSL1은 번역 레이어 방식이다. Linux 시스템 호출을 Windows 커널 호출로 변환한다. 실제 Linux 커널을 사용하지 않는다.
WSL2는 경량 가상 머신 방식이다. 실제 Linux 커널을 사용한다. Microsoft가 kernel.org 소스를 기반으로 WSL2에 최적화한 커널을 제공한다. 이 커널은 Windows Update를 통해 자동으로 업데이트된다.
기능 비교
| 특성 | WSL1 | WSL2 |
|---|---|---|
| 아키텍처 | 번역 레이어 | 실제 Linux 커널 |
| 시스템 호출 호환성 | 일부 지원 | 완전 지원 |
| 파일 시스템 성능 (Linux 파일) | 느림 | 빠름 |
| 파일 시스템 성능 (Windows 파일) | 빠름 | 느림 |
| 메모리 사용 | 적음 | 동적 할당 |
| 네트워킹 | 호스트와 동일 IP | 별도 가상 IP (NAT) |
| Docker 지원 | ✗ | ✓ |
| Claude Code 지원 | ✓ | ✓ |
| Claude Code 샌드박싱 | ✗ | ✓ |
Claude Code에서 WSL2를 권장하는 이유
Claude Code 공식 문서에서는 WSL1과 WSL2 모두 지원한다고 명시하고 있다. 하지만 WSL2를 권장하는 이유가 있다.
샌드박싱: Claude Code의 샌드박스 기능은 OS 수준에서 파일 시스템과 네트워크를 격리한다. macOS에서는 Seatbelt, Linux에서는 bubblewrap을 사용한다. WSL2는 bubblewrap을 사용할 수 있지만, WSL1은 bubblewrap이 요구하는 커널 기능이 없어서 샌드박싱을 지원하지 않는다.
샌드박싱이 중요한 이유는 보안이다. 샌드박싱 없이 Claude Code를 사용하면 모든 Bash 명령이 시스템 전체에 접근할 수 있다. 샌드박싱을 활성화하면 Claude Code가 실행하는 명령이 지정된 디렉토리와 네트워크 도메인으로 제한된다.
시스템 호출 호환성: WSL2는 전체 Linux 커널을 포함하기 때문에 모든 Linux 시스템 호출을 지원한다. WSL1에서는 일부 시스템 호출이 동작하지 않아 특정 도구나 패키지가 실패할 수 있다.
파일 시스템 성능: 프로젝트 파일을 Linux 파일 시스템(/home/사용자명/ 하위)에 저장하면 WSL2에서 Git, npm, cmake 등의 성능이 크게 향상된다. git clone은 최대 20배, npm install은 2~5배 더 빠르다.
WSL1을 선택하는 경우
대부분의 경우 WSL2를 권장하지만, WSL1이 더 적합한 경우도 있다.
- Windows 파일 시스템 접근이 많은 경우: 프로젝트 파일이 Windows(
C:\)에 있고 Linux 파일 시스템으로 옮길 수 없다면 WSL1이 더 빠르다 - 메모리가 제한된 환경: WSL2는 가상 머신을 사용하기 때문에 WSL1보다 메모리를 더 사용한다
- 호스트와 동일한 IP가 필요한 경우: WSL1은 Windows와 동일한 네트워크 인터페이스를 사용하지만, WSL2는 별도의 가상 네트워크(NAT)를 사용한다
WSL 설치
필수 조건
- Windows 버전: Windows 10 버전 2004 이상(빌드 19041 이상) 또는 Windows 11
- Windows 버전 확인 방법:
Win + R을 누르고winver를 입력한다
방법 1: 한 줄 명령 (권장)
가장 간단한 설치 방법이다. PowerShell을 관리자 권한으로 실행하고 다음 명령을 입력한다.
wsl --install
이 명령은 다음을 자동으로 수행한다.
- WSL 기능 활성화
- 가상 머신 플랫폼 활성화
- Linux 커널 업데이트
- Ubuntu 기본 설치
설치가 완료되면 컴퓨터를 재시작한다. 재시작 후 Ubuntu가 자동으로 시작되고 사용자 이름과 비밀번호를 설정하라는 화면이 나온다.
PowerShell 관리자 권한으로 실행하는 방법:
- 시작 메뉴에서 “PowerShell” 검색
- “Windows PowerShell”을 마우스 오른쪽 클릭
- “관리자 권한으로 실행” 선택
방법 2: 수동 설치
wsl --install 명령이 동작하지 않는 이전 버전 Windows에서는 수동으로 설치한다.
# 1. WSL 기능 활성화
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
# 2. 가상 머신 플랫폼 활성화
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
위 명령 실행 후 컴퓨터를 재시작한다. 재시작 후 WSL2를 기본 버전으로 설정한다.
# 3. WSL2를 기본 버전으로 설정
wsl --set-default-version 2
그다음 Microsoft Store에서 원하는 Linux 배포판(Ubuntu 등)을 설치한다.
설치 후 초기 설정
재시작 후 Ubuntu(또는 선택한 배포판)가 처음 시작되면 설정 화면이 나타난다.
- 사용자 이름 입력: Linux에서 사용할 사용자 이름을 입력한다. Windows 사용자 이름과 다를 수 있다
- 비밀번호 입력: Linux 사용자 비밀번호를 설정한다.
sudo명령 실행 시 필요하다 - 비밀번호 확인: 동일한 비밀번호를 다시 입력한다
설정이 완료되면 Linux 명령줄 프롬프트가 표시된다.
Linux 배포판 선택
사용 가능한 배포판 확인
설치할 수 있는 배포판 목록을 확인한다.
wsl -l -o
주요 배포판
| 배포판 | 특징 | 권장 대상 |
|---|---|---|
| Ubuntu | 기본 배포판, 초보자 친화적, 풍부한 문서 | 대부분의 사용자 |
| Debian | 안정적, 가벼움 | 서버 경험자 |
| Fedora | 최신 패키지 | 최신 기능 선호 |
| openSUSE | 엔터프라이즈 친화적 | 기업 환경 |
Claude Code 사용이 목적이라면 Ubuntu를 권장한다. 문서와 커뮤니티 지원이 가장 풍부하고, Claude Code 공식 문서의 예시도 대부분 Ubuntu 기반이다.
특정 배포판 설치
기본 Ubuntu 대신 다른 배포판을 설치하려면:
# Ubuntu 22.04 설치
wsl --install -d Ubuntu-22.04
# Debian 설치
wsl --install -d Debian
설치 프로세스가 0%에서 멈추면 --web-download 옵션을 추가한다.
wsl --install --web-download -d Ubuntu-22.04
배포판 관리
설치된 배포판 확인
wsl -l -v
출력 예시:
NAME STATE VERSION
* Ubuntu Running 2
Debian Stopped 1
VERSION 열이 WSL 버전이다. *는 기본 배포판을 의미한다.
기본 배포판 변경
wsl --set-default Ubuntu-22.04
WSL 버전 변경
WSL1으로 설치된 배포판을 WSL2로 업그레이드할 수 있다.
# WSL1 → WSL2로 업그레이드
wsl --set-version Ubuntu 2
# WSL2 → WSL1로 다운그레이드
wsl --set-version Ubuntu 1
배포판 제거
wsl --unregister Ubuntu
이 명령은 해당 배포판의 모든 데이터를 삭제한다.
설치 확인
설치가 완료되면 WSL2가 정상적으로 동작하는지 확인한다.
버전 확인
wsl -l -v
VERSION 열이 2인지 확인한다.
WSL 시작
# 기본 배포판 시작
wsl
# 특정 배포판 시작
wsl -d Ubuntu-22.04
기본 명령 테스트
WSL 터미널에서 다음 명령을 실행해본다.
# Linux 버전 확인
cat /etc/os-release
# 현재 사용자 확인
whoami
# 홈 디렉토리 확인
pwd
# Windows C: 드라이브 접근
ls /mnt/c
모든 명령이 정상적으로 동작하면 WSL 설치가 완료된 것이다.
정리
핵심 요점
-
WSL이란: Windows에서 Linux를 직접 실행할 수 있게 해주는 기술이다
-
WSL2 권장: 실제 Linux 커널을 사용하고, 전체 시스템 호출 호환성과 향상된 파일 시스템 성능을 제공한다
-
Claude Code 샌드박싱: WSL2에서만 지원된다. bubblewrap을 사용한 OS 수준 격리가 필요하기 때문이다
-
설치:
wsl --install한 줄로 WSL2와 Ubuntu가 설치된다 -
배포판: Ubuntu를 권장한다. Claude Code 문서와 호환성이 가장 좋다
설치 체크리스트
- Windows 버전 확인 (Windows 10 2004 이상 또는 Windows 11)
- PowerShell 관리자 권한으로 실행
-
wsl --install명령 실행 - 컴퓨터 재시작 완료
- Linux 사용자 계정 생성 (이름, 비밀번호)
-
wsl -l -v로 WSL2 확인 (VERSION = 2) - 기본 Linux 명령 테스트
확인해볼 링크
다음 단계
다음 차시에서는 WSL 기본 사용법을 학습한다. WSL 시작과 종료, 기본 Linux 명령어, Windows와 Linux 간 파일 시스템 접근 방법을 다룬다.