본문 바로가기
Information

윈도우 11에서 WSL2 개발 환경을 쉽고 빠르게 세팅하는 방법

by 117jkerw 2025. 5. 29.

윈도우 11에서 WSL2 개발 환경을 쉽고 빠르게 세팅하는 방법

 


목차

  1. WSL2란 무엇이며 왜 필요한가요?
  2. 윈도우 11에서 WSL2 설치 준비
  3. WSL2 및 Ubuntu 설치
  4. Ubuntu 초기 설정 및 업데이트
  5. Visual Studio Code 연동
  6. Git 및 개발 도구 설치
  7. Node.js 개발 환경 설정 (NVM 활용)
  8. Docker Desktop 연동
  9. 자주 발생하는 문제 해결 팁

1. WSL2란 무엇이며 왜 필요한가요?

윈도우 11에서 개발 작업을 하다 보면 리눅스 환경이 필요한 경우가 많습니다. 특히 웹 개발, 머신러닝, 컨테이너 기술 등을 사용할 때 리눅스의 강력함과 유연성은 큰 장점으로 작용합니다. 하지만 가상 머신을 사용하거나 듀얼 부팅을 설정하는 것은 번거롭고 시스템 자원을 많이 소모할 수 있습니다. 이때 등장하는 것이 바로 **WSL2 (Windows Subsystem for Linux 2)**입니다.

WSL2는 윈도우 운영체제 위에 리눅스 커널을 직접 실행하여, 거의 네이티브 리눅스와 동일한 성능과 호환성을 제공합니다. 기존 WSL1의 파일 I/O 성능 문제를 해결하고, Docker와 같은 리눅스 기반 애플리케이션을 완벽하게 지원하는 등 개발자에게 최적화된 환경을 제공합니다. 윈도우 환경에서 리눅스 터미널을 사용하고, 윈도우 파일 시스템에 접근하며, 편리하게 개발 도구를 활용할 수 있다는 것이 가장 큰 매력입니다.

2. 윈도우 11에서 WSL2 설치 준비

WSL2를 설치하기 전에 몇 가지 확인하고 준비해야 할 사항이 있습니다. 윈도우 11 Pro 또는 Home 버전을 사용하고 있는지 확인하세요. 대부분의 윈도우 11 사용자는 이 조건을 충족합니다.

먼저, 가상화 기술이 활성화되어 있는지 확인해야 합니다. 이는 BIOS/UEFI 설정에서 확인할 수 있으며, 일반적으로 "Intel VT-x" 또는 "AMD-V"와 같은 이름으로 되어 있습니다. 대부분의 최신 컴퓨터에서는 기본적으로 활성화되어 있지만, 만약 비활성화되어 있다면 BIOS/UEFI 설정으로 들어가서 활성화해주어야 합니다.

다음으로, 윈도우 기능에서 "가상 머신 플랫폼" 및 "Linux용 Windows 하위 시스템" 기능이 활성화되어 있는지 확인해야 합니다.

  1. 윈도우 검색창에 "Windows 기능 켜기/끄기"를 입력하여 실행합니다.
  2. 목록에서 **"가상 머신 플랫폼"**과 **"Linux용 Windows 하위 시스템"**을 찾아 체크박스를 선택합니다.
  3. "확인"을 클릭하고 시스템을 재부팅합니다. 재부팅은 필수적입니다.

3. WSL2 및 Ubuntu 설치

이제 본격적으로 WSL2와 리눅스 배포판인 Ubuntu를 설치해보겠습니다.

  1. 관리자 권한으로 PowerShell 또는 명령 프롬프트를 실행합니다.
  2. 다음 명령어를 입력하여 WSL2를 설치합니다:
    wsl --install
    이 명령어는 필요한 WSL 구성 요소를 설치하고 기본 리눅스 배포판(일반적으로 Ubuntu)을 자동으로 설치합니다. 만약 특정 배포판을 설치하고 싶다면 wsl --install -d <배포판 이름> 명령어를 사용할 수 있습니다. 예를 들어, wsl --install -d Debian과 같이 사용할 수 있습니다.
  3. 설치가 완료되면 시스템을 재부팅하라는 메시지가 나타날 수 있습니다. 재부팅을 진행합니다.
  4. 재부팅 후, Ubuntu 터미널이 자동으로 실행되면서 사용자 이름과 비밀번호를 설정하라는 메시지가 나타납니다. 여기서 설정하는 사용자 이름과 비밀번호는 Ubuntu 환경에서 사용될 것이므로 잘 기억해두세요. 이 과정이 완료되면 Ubuntu 환경이 성공적으로 설치된 것입니다.

4. Ubuntu 초기 설정 및 업데이트

Ubuntu 설치가 완료되었다면, 이제 시스템을 최신 상태로 유지하고 필요한 초기 설정을 진행해야 합니다.

  1. 설치된 Ubuntu 터미널을 실행합니다.
  2. 패키지 목록을 업데이트하고 기존 패키지를 업그레이드합니다. 이는 매우 중요한 단계이며, 개발 환경의 안정성을 높여줍니다.
    sudo apt update
    sudo apt upgrade -y
    sudo는 관리자 권한으로 명령을 실행할 때 사용하며, apt update는 패키지 목록을 최신 상태로 만들고, apt upgrade는 설치된 패키지들을 최신 버전으로 업그레이드합니다. -y 옵션은 모든 질문에 "예"로 자동 응답하여 편리하게 업그레이드를 진행할 수 있도록 합니다.
  3. 필요 없는 의존성 패키지를 정리합니다.
    sudo apt autoremove -y
  4. WSL의 기본 버전을 WSL2로 설정하여 항상 최신 기능을 활용할 수 있도록 합니다. 관리자 권한의 PowerShell에서 다음 명령어를 실행합니다:
    wsl --set-default-version 2
    이 명령어를 실행하면 앞으로 설치되는 모든 리눅스 배포판이 WSL2 모드로 설치됩니다. 이미 설치된 배포판을 WSL2로 변환하려면 wsl --set-version <배포판 이름> 2 명령어를 사용합니다. (예: wsl --set-version Ubuntu 2)

5. Visual Studio Code 연동

대부분의 개발자들이 선호하는 **Visual Studio Code (VS Code)**는 WSL2와 완벽하게 연동됩니다. 이 연동을 통해 윈도우에서 VS Code를 실행하면서 WSL2 내부에 있는 파일과 폴더를 마치 로컬에 있는 것처럼 편집하고, WSL2 환경의 터미널을 사용할 수 있습니다.

  1. 윈도우에 VS Code가 설치되어 있지 않다면, VS Code 공식 웹사이트에서 다운로드하여 설치합니다.
  2. VS Code를 실행하고 "Remote - WSL" 확장 프로그램을 설치합니다. Extensions 뷰(Ctrl+Shift+X)에서 "Remote - WSL"을 검색하여 설치합니다.
  3. Ubuntu 터미널에서 작업하고 싶은 프로젝트 폴더로 이동한 후, 해당 폴더 내에서 다음 명령어를 입력합니다:
    code .
    이 명령어를 실행하면 VS Code가 자동으로 WSL 환경에 연결되고, 해당 폴더를 워크스페이스로 열어줍니다. 이제 윈도우에서 VS Code를 사용하면서 실제 코드는 WSL2 환경에 저장되고 실행되는 편리한 개발 환경이 구축됩니다.

6. Git 및 개발 도구 설치

버전 관리 시스템인 Git은 개발의 필수 요소입니다. 또한, 개발에 필요한 기본적인 도구들을 설치해야 합니다.

  1. Ubuntu 터미널을 실행합니다.
  2. Git을 설치합니다:
    sudo apt install git -y
  3. Git 설정을 진행합니다. 이는 Git 커밋에 사용될 사용자 이름과 이메일을 지정하는 단계입니다.
    git config --global user.name "본인의 이름"
    git config --global user.email "본인의 이메일"
  4. 필요에 따라 build-essential 패키지를 설치합니다. 이 패키지는 컴파일러, make 도구 등 C/C++ 개발에 필요한 기본적인 도구들을 포함하고 있습니다.
    sudo apt install build-essential -y
  5. curlwget과 같은 다운로드 도구도 설치해두면 유용합니다.
    sudo apt install curl wget -y

7. Node.js 개발 환경 설정 (NVM 활용)

웹 개발자에게 Node.js는 필수적인 런타임입니다. 다양한 버전의 Node.js를 효율적으로 관리하기 위해 **NVM (Node Version Manager)**을 사용하는 것을 권장합니다.

  1. Ubuntu 터미널을 실행합니다.
  2. NVM을 설치합니다. 다음 명령어는 NVM의 공식 GitHub 저장소에서 최신 설치 스크립트를 다운로드하여 실행합니다. (버전은 다를 수 있으므로 NVM GitHub에서 최신 버전을 확인하세요.)
    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
  3. 설치 후, 터미널을 닫았다가 다시 열거나, 다음 명령어를 입력하여 NVM을 셸에 로드합니다.
    source ~/.bashrc
    또는
    source ~/.profile
    환경에 따라 .bashrc 또는 .profile 파일을 선택합니다.
  4. NVM이 제대로 설치되었는지 확인합니다:
    nvm --version
  5. Node.js를 설치합니다. nvm install --lts 명령어를 사용하여 LTS(Long Term Support) 버전을 설치하는 것을 권장합니다.
    nvm install --lts
    특정 버전을 설치하려면 nvm install 18과 같이 버전을 지정할 수 있습니다.
  6. 설치된 Node.js 버전을 기본으로 설정합니다.
    nvm use --lts
    또는 특정 버전을 기본으로 설정하려면 nvm alias default 18과 같이 사용합니다.
  7. Node.js와 npm (Node Package Manager)이 제대로 설치되었는지 확인합니다:
    node -v
    npm -v

8. Docker Desktop 연동

컨테이너 기술인 Docker는 현대 개발에서 빼놓을 수 없는 도구입니다. WSL2는 Docker Desktop과 완벽하게 연동되어, 윈도우 환경에서 리눅스 컨테이너를 효율적으로 관리할 수 있게 해줍니다.

  1. 윈도우에 Docker Desktop이 설치되어 있지 않다면, Docker 공식 웹사이트에서 다운로드하여 설치합니다.
  2. Docker Desktop 설치 시 WSL 2 Backend 옵션이 자동으로 선택되는지 확인합니다. 만약 선택되지 않는다면 수동으로 선택하여 설치를 진행합니다.
  3. 설치 완료 후 Docker Desktop을 실행합니다. 처음 실행 시 필요한 구성 요소들을 다운로드하고 설정하는 데 시간이 걸릴 수 있습니다.
  4. Docker Desktop 설정에서 **"Settings" -> "Resources" -> "WSL Integration"**으로 이동하여 WSL2에서 Docker를 사용할 수 있도록 활성화합니다. 특히, Docker를 사용하려는 Ubuntu 배포판이 활성화되어 있는지 확인합니다.
  5. Ubuntu 터미널에서 Docker가 정상적으로 작동하는지 확인합니다:
    docker run hello-world
    "Hello from Docker!" 메시지가 출력된다면 성공적으로 Docker가 WSL2와 연동된 것입니다. 이제 WSL2 환경에서 docker-compose와 같은 Docker 명령어를 자유롭게 사용할 수 있습니다.

9. 자주 발생하는 문제 해결 팁

  • "WSL 2 설치에 실패했습니다. 가상 머신 플랫폼 구성 요소를 사용하도록 설정했는지 확인하세요." 오류: 윈도우 기능에서 "가상 머신 플랫폼" 및 "Linux용 Windows 하위 시스템"이 활성화되었는지 다시 확인하고 시스템을 재부팅합니다. BIOS/UEFI에서 가상화 기능이 활성화되었는지도 확인해야 합니다.
  • 인터넷 연결 문제: WSL2 환경에서 인터넷 연결이 안 될 경우, 윈도우 방화벽 설정을 확인하거나, sudo service networking restart와 같은 명령어로 네트워크 서비스를 재시작해 볼 수 있습니다. 때로는 윈도우 네트워크 어댑터 설정에서 WSL 관련 가상 어댑터의 DNS 설정을 변경해야 할 수도 있습니다.
  • WSL 배포판 재설치: 문제가 해결되지 않거나 초기화하고 싶을 경우, 관리자 권한의 PowerShell에서 wsl --unregister <배포판 이름> 명령어로 해당 배포판을 완전히 삭제한 후 wsl --install -d <배포판 이름>으로 다시 설치할 수 있습니다.
  • VS Code Remote - WSL 확장 문제: VS Code에서 WSL에 연결되지 않을 경우, "Remote - WSL" 확장 프로그램이 최신 버전인지 확인하고, VS Code를 완전히 닫았다가 다시 시작해봅니다.

이제 윈도우 11에서 WSL2를 활용한 강력하고 효율적인 개발 환경이 완벽하게 구축되었습니다. 이 환경을 통해 더욱 생산적이고 즐거운 개발 경험을 하실 수 있을 것입니다.

 

더 자세한 내용은 아래를 참고하세요.

 

더 자세한 자료 보기