2025년 8월 12일 화요일

WSL2 개발 환경 구축 완벽 가이드: 윈도우에서 리눅스 쓰는 법

개발자라면 누구나 한 번쯤은 윈도우 환경에서 리눅스 기반의 개발 도구를 사용하고 싶다는 생각을 해봤을 겁니다. 하지만 복잡한 듀얼 부팅 설정이나 무거운 가상 머신(Virtual Machine)은 매번 번거로운 작업이었죠. 이제 그런 고민은 모두 과거의 이야기가 되었습니다. 'WSL2(Windows Subsystem for Linux 2)'는 윈도우 운영체제 안에서 완벽한 리눅스 환경을 제공하며, 개발자들의 생산성을 혁신적으로 끌어올린 최고의 기술 중 하나입니다.

이 글은 WSL2에 대한 모든 것을 담은 종합 가이드입니다. WSL2가 무엇인지, 왜 기존의 WSL1이나 가상 머신보다 뛰어난지부터 시작해, WSL2를 설치하고 설정하는 방법, 그리고 Node.js, Python, Docker 등 주요 개발 환경을 구축하는 상세한 공략까지 모두 다루었습니다. 이 가이드만 있다면 당신은 더 이상 복잡한 설정에 시간을 낭비하지 않고, 당신의 윈도우 PC를 강력한 리눅스 개발 머신으로 탈바꿈시킬 수 있을 것입니다.


1. WSL2, 왜 지금 주목해야 하는가?: WSL1과의 차이점

WSL2는 윈도우 환경에서 리눅스 바이너리를 직접 실행할 수 있게 해주는 호환성 레이어인 WSL의 두 번째 버전입니다. 하지만 단순히 버전업된 기능 이상으로, WSL2는 기존의 WSL1과는 완전히 다른, 혁신적인 변화를 가져왔습니다.

1.1. WSL1의 한계

WSL1은 리눅스 커널을 직접 실행하는 대신, 윈도우 운영체제의 커널을 활용하여 리눅스 시스템 호출을 변환하는 방식으로 작동했습니다. 이 방식은 성능이 빠르다는 장점이 있었지만, 모든 리눅스 애플리케이션을 완벽하게 지원하지 못했고, 특히 도커(Docker)와 같은 복잡한 시스템과는 호환성에 문제가 있었습니다.

1.2. WSL2의 혁신: 가상 머신과 리눅스 커널

WSL2는 이러한 한계를 극복하기 위해, 가벼운 가상 머신 기술을 도입했습니다. 윈도우 하이퍼-V(Hyper-V) 가상화 기술을 기반으로 자체적인 리눅스 커널을 포함하고 있습니다.

  • 완벽한 시스템 호환성: WSL2는 진짜 리눅스 커널을 사용하므로, 모든 리눅스 애플리케이션과 시스템 호출을 완벽하게 지원합니다.

  • 압도적인 성능: 특히 파일 시스템 성능이 WSL1에 비해 비약적으로 향상되었습니다. WSL1에서 문제가 되었던 파일 I/O 속도가 크게 개선되어, 실제 리눅스 시스템과 거의 동일한 속도로 작업을 할 수 있습니다.

  • 도커(Docker) 완벽 지원: WSL2는 도커 데스크톱(Docker Desktop)과 완벽하게 통합되어, 윈도우에서 리눅스 컨테이너를 구동하는 가장 효율적인 방법을 제공합니다.


2. WSL2 설치 및 환경 설정 완벽 가이드

WSL2를 설치하고 사용하는 과정은 매우 간단해졌습니다. 더 이상 복잡한 명령어나 설정이 필요하지 않습니다.

2.1. 1단계: 윈도우 기능 활성화

  • PowerShell 관리자 권한으로 실행: 윈도우 시작 메뉴를 마우스 우클릭하여 'PowerShell(관리자)'를 선택합니다.

  • WSL 기능 활성화 명령어 입력: 다음 명령어를 입력하여 WSL 관련 기능을 활성화합니다.

    Bash
    wsl --install
    

    이 명령어는 WSL2와 기본 리눅스 배포판(Ubuntu)을 자동으로 설치해 줍니다. 만약 원하는 리눅스 배포판이 있다면, wsl --list --online 명령어로 목록을 확인한 후 wsl --install -d <배포판 이름>으로 설치할 수 있습니다.

2.2. 2단계: 리눅스 사용자 계정 설정

  • 사용자 이름 및 비밀번호 설정: WSL2 설치가 완료되면, 리눅스 사용자 이름과 비밀번호를 설정하는 프롬프트가 나타납니다. 여기서 설정한 비밀번호는 sudo 명령어를 사용할 때 필요하니 잘 기억해 두세요.

2.3. 3단계: 기본 리눅스 배포판 확인 및 버전 설정

  • 설치된 리눅스 배포판 확인: wsl --list --verbose 명령어를 입력하면 현재 설치된 리눅스 배포판 목록과 WSL 버전을 확인할 수 있습니다.

  • WSL2로 설정: 만약 배포판이 WSL1으로 설정되어 있다면, wsl --set-version <배포판 이름> 2 명령어로 WSL2로 변경할 수 있습니다.


3. WSL2 개발 환경, 이렇게 구축하세요! (언어별 상세 공략)

WSL2 환경이 준비되었다면, 이제 당신이 원하는 개발 언어 환경을 구축할 차례입니다. 윈도우와 리눅스 환경을 오가며 개발하는 노하우와 함께 자세히 알려드리겠습니다.

3.1. Node.js 개발 환경 구축

  • nvm(Node Version Manager) 설치: Node.js 버전을 유연하게 관리하기 위해 nvm을 설치하는 것이 좋습니다.

    Bash
    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
    

    설치 후 터미널을 재시작하고 nvm --version 명령어로 설치가 잘 되었는지 확인합니다.

  • Node.js 설치: nvm install --lts 명령어로 최신 LTS(Long Term Support) 버전을 설치합니다.

  • VS Code와 통합: 윈도우에서 VS Code를 열고, 'Remote - WSL' 확장 기능을 설치하면 WSL2 환경의 파일을 직접 수정하고 터미널을 사용할 수 있습니다.

3.2. Python 개발 환경 구축

  • pyenv 설치: Python 버전을 관리하기 위해 pyenv를 설치하는 것이 좋습니다.

    Bash
    curl https://pyenv.run | bash
    
  • Python 설치: pyenv install 3.10.0 명령어로 원하는 버전의 Python을 설치하고, pyenv global 3.10.0 명령어로 전역 설정을 변경합니다.

  • 가상 환경(Virtual Environment) 사용: 프로젝트별로 가상 환경을 만들어 패키지 충돌을 방지하는 것이 중요합니다. python -m venv venv 명령어로 가상 환경을 생성하고 source venv/bin/activate로 활성화합니다.

3.3. Docker 컨테이너 개발 환경 구축

  • Docker Desktop 설치: 윈도우에 Docker Desktop을 설치하면 WSL2와 자동으로 연동됩니다.

  • WSL2에서 Docker 사용: Docker Desktop 설정에서 'Use the WSL2 based engine' 옵션이 활성화되어 있는지 확인합니다. 이렇게 하면 WSL2 터미널에서 docker 명령어를 바로 사용할 수 있습니다.

  • 컨테이너 빌드 및 실행: WSL2 터미널에서 docker build -t my-app . 명령어로 이미지를 빌드하고 docker run -p 8080:80 my-app으로 컨테이너를 실행할 수 있습니다.


4. WSL2 활용 노하우: 윈도우와 리눅스의 시너지 극대화

WSL2는 윈도우와 리눅스 환경을 유기적으로 연결하여 개발자의 생산성을 한 단계 더 끌어올릴 수 있습니다.

4.1. 윈도우 파일 시스템과 리눅스 파일 시스템 오가기

  • 윈도우 파일 접근: WSL2 터미널에서 /mnt/c와 같은 경로를 통해 윈도우의 C 드라이브에 접근할 수 있습니다.

  • 리눅스 파일 접근: 윈도우 파일 탐색기에서 네트워크 위치에 \\wsl$를 입력하거나, VS Code에서 'Open Remote...' 기능을 사용하면 WSL2 환경의 파일을 윈도우에서 직접 열 수 있습니다.

4.2. 윈도우 앱과 리눅스 앱 동시에 사용하기

  • 윈도우 명령 프롬프트에서 WSL2 명령어 사용: 윈도우 명령 프롬프트에서 wsl 명령어를 입력하면 WSL2 터미널로 바로 전환됩니다.

  • 리눅스 터미널에서 윈도우 명령어 사용: WSL2 터미널에서 explorer.exe . 명령어를 입력하면 현재 위치의 리눅스 폴더를 윈도우 파일 탐색기에서 열 수 있습니다.

4.3. VS Code와 WSL2의 완벽한 통합

VS Code는 WSL2를 위한 최고의 코드 편집기입니다. 'Remote - WSL' 확장 기능을 사용하면 윈도우의 VS Code에서 WSL2의 리눅스 환경을 완벽하게 제어할 수 있습니다.

  • 리눅스 환경에서 확장 기능 설치: WSL2에서 VS Code를 열면, 리눅스 환경에 맞는 확장 기능을 설치할 수 있어 호환성 문제를 걱정할 필요가 없습니다.

  • 터미널 통합: VS Code 터미널에서 WSL2 터미널을 바로 사용할 수 있어, 코드를 수정하고 명령어를 실행하는 작업을 한 곳에서 처리할 수 있습니다.


5. 리얼 개발자 후기: WSL2, 이제 필수 개발 도구

저 또한 WSL2가 출시된 이후부터 줄곧 사용해 오고 있습니다. 처음에는 단순히 호기심에 설치했지만, 이제는 WSL2 없는 개발 환경을 상상하기 어려울 정도입니다.

  • "WSL2는 개발의 워크플로우를 완전히 바꿨습니다. 더 이상 윈도우에서 특정 리눅스 도구가 작동하지 않을까 걱정할 필요가 없어졌습니다. 윈도우의 편리함과 리눅스의 강력함을 동시에 누릴 수 있다는 점이 가장 큰 장점입니다."

  • "특히 도커를 사용할 때 WSL2의 진가가 드러납니다. 윈도우 환경에서 도커를 사용하면 무겁고 느렸던 경험이 많았는데, WSL2를 사용한 이후로는 리눅스 네이티브 환경과 거의 동일한 성능으로 컨테이너를 구동할 수 있습니다."

  • "VS Code와의 통합은 정말 혁신적입니다. 윈도우의 편안한 UI로 코드를 작성하면서, 백엔드 서버는 WSL2 환경에서 구동하는 등의 유연한 작업이 가능해졌습니다."

WSL2는 단순히 리눅스를 윈도우에 올린 기술이 아니라, 개발자들이 윈도우 환경에서도 자유롭게 리눅스 기반의 개발을 할 수 있도록 문을 활짝 열어주었습니다. 이제 윈도우 PC를 사용하는 모든 개발자에게 WSL2는 선택이 아닌 필수가 되었습니다.

6. 결론: 윈도우 개발의 새로운 표준, WSL2

WSL2는 윈도우 운영체제의 편리함과 리눅스의 강력함을 완벽하게 결합한 혁신적인 기술입니다. 복잡한 가상 머신 설정이나 듀얼 부팅의 번거로움 없이, 윈도우 PC 하나만으로도 리눅스 기반의 개발 환경을 자유롭게 구축할 수 있게 되었습니다. 이 글을 통해 WSL2의 강력한 기능과 효율적인 활용법을 익히고, 당신의 개발 생산성을 한 단계 더 끌어올리시길 바랍니다.


자주 묻는 질문 (FAQ)

Q1. WSL2를 사용하면 PC 성능이 느려지나요? A. WSL2는 가벼운 가상화 기술을 사용하므로, PC 성능에 미치는 영향은 매우 미미합니다.

Q2. WSL1과 WSL2 중 어떤 것을 사용해야 하나요? A. 특수한 경우가 아니라면 대부분의 경우 WSL2를 사용하는 것이 좋습니다. 더 나은 성능과 완벽한 시스템 호환성을 제공합니다.

Q3. WSL2를 사용하려면 윈도우 버전이 어떻게 되어야 하나요? A. 윈도우 10 버전 2004 이상 또는 윈도우 11을 사용해야 WSL2를 설치할 수 있습니다.

Q4. 여러 개의 리눅스 배포판을 설치할 수 있나요? A. 네, wsl --install -d <배포판 이름> 명령어를 사용해 여러 개의 리눅스 배포판을 설치하고 사용할 수 있습니다.

Q5. WSL2에서 GUI(그래픽) 앱도 사용할 수 있나요? A. 네, WSL2는 GUI 앱을 지원합니다. 별도의 설정 없이도 리눅스 GUI 앱을 윈도우에서 실행할 수 있습니다.

Q6. 윈도우와 WSL2 간에 파일 공유는 어떻게 이루어지나요? A. 윈도우 파일 탐색기에서 \\wsl$ 경로로 접속하거나, WSL2 터미널에서 /mnt/c와 같은 경로로 윈도우 파일을 접근할 수 있습니다.

Q7. 도커 데스크톱은 꼭 설치해야 하나요? A. 도커 컨테이너 기반의 개발을 한다면 Docker Desktop 설치를 강력히 추천합니다. WSL2와 완벽하게 통합되어 가장 효율적인 환경을 제공합니다.

Q8. WSL2를 설치했는데 인터넷이 연결되지 않아요. A. 윈도우 방화벽 설정이나 네트워크 설정에 문제가 있을 수 있습니다. 윈도우 네트워크 설정을 다시 확인해 보세요.

Q9. WSL2에서 윈도우 실행 파일(exe)을 실행할 수 있나요? A. 네, powershell.exe, explorer.exe 등 윈도우 실행 파일을 WSL2 터미널에서 직접 실행할 수 있습니다.

Q10. WSL2를 삭제하려면 어떻게 해야 하나요? A. 윈도우 설정 > 앱 및 기능 메뉴에서 설치된 리눅스 배포판을 찾아 제거할 수 있습니다.

댓글 없음:

댓글 쓰기

참고: 블로그의 회원만 댓글을 작성할 수 있습니다.

윈도우 파티션 크기 조정: 디스크 관리로 C/D 드라이브 용량 늘리는 법

  안녕하세요, PC를 사용하는 여러분! 혹시 이런 경험 있으신가요? C 드라이브는 용량이 부족해서 빨간색 경고등이 떴는데, D 드라이브는 텅텅 비어있는 상황. 또는 새로 산 SSD나 하드디스크가 하나의 거대한 파티션으로만 설정되어 있어 용도를 나누고...