이 출시되었습니다! 11월의 새로운 기능 및 수정 사항을 읽어보세요.

Visual Studio Code와 WSL 2

2019년 9월 3일, Matt Hernandez 작성, @fiveisprime

몇 달 전 Windows Subsystem for Linux 2(WSL 2)의 초기 베타 버전이 출시된 이후, 이 기능이 무엇이며 어떻게 생산성을 향상시킬 수 있는지 공유하고 싶었습니다. 저는 Windows Insiders에 출시된 이후 베타 버전을 사용해 왔으며, 매일 개발 작업을 할 때 WSL 2를 독점적으로 사용하도록 빠르게 전환했습니다.

WSL 2의 변경 사항

첫 번째 버전은 Windows에서 시스템 호출을 네이티브로 구현했습니다. 시스템 호출은 본질적으로 커널에서 제공하는 함수이므로, 구현된 호출만 WSL 환경에서 지원되었습니다. WSL 초기 버전을 사용하면서 구현되지 않은 시스템 호출에 액세스하려는 라이브러리 및 도구를 발견했을 때 이 점을 인지하셨을 것입니다 (예: Go 디버거). 더 많은 함수에 대한 지원을 추가하기 위해 점진적인 개선이 이루어졌지만, WSL 2는 **완전한** Linux 커널을 포함하는 경량 가상 머신을 제공하여 완전히 다른 접근 방식을 취합니다.

맞습니다. WSL 2는 이제 VM을 제공하지만, VM에서 기대하는 경험과는 다릅니다. 기존 VM은 시작이 느리고 격리된 느낌을 줄 수 있지만, WSL 2는 이전 버전만큼이나 원활합니다. Windows와 Linux 간의 높은 수준의 통합, 매우 빠른 부팅 시간, 작은 리소스 사용량, 그리고 전혀 VM 구성 또는 관리 작업이 필요 없습니다.

이 모든 것이 IO 성능 향상으로 이어집니다. WSL 1에 비해 최대 20배 빨라졌으며, 전체 시스템 호출 기능을 지원합니다. 모듈 설치가 더 빨라지고, 리포지토리 복제가 더 빨라지며, 즐겨 사용하는 라이브러리가 안정적으로 작동할 것입니다. 성능 향상은 Zsh와 같은 대체 쉘을 실행하거나 즐겨 사용하는 Node.js 버전 관리 유틸리티를 사용할 수 있음을 의미하기도 합니다.

WSL 2와 Visual Studio Code

따라오고 계시다면 Windows Insiders 빌드를 선택하고 WSL 2를 활성화했는지 확인하십시오. WSL 2 설치 지침에서 시작하는 방법에 대해 자세히 알아볼 수 있습니다.

또한 Visual Studio CodeWSL 확장을 설치해야 합니다. 선택 사항이지만, Windows에서 최고의 터미널 경험을 위해 Windows Terminal 미리 보기를 확인해 보세요.

WSL extension

WSL을 열려면 Windows Terminal을 실행하고 새 WSL 탭을 만들거나 설치한 Linux 배포판을 실행하십시오. 또한 명령 프롬프트 또는 PowerShell에서 터미널에 wsl을 입력하여 Linux로 직접 전환할 수도 있습니다. 이는 WSL이 Windows에 얼마나 깊숙이 통합되어 있는지 보여주는 많은 방법 중 하나입니다. 또한 WSL을 인라인으로 사용하여 다음과 같은 놀라운 작업을 수행할 수도 있습니다...

WSL cow say example

터미널에서 WSL의 code .를 사용하여 Visual Studio Code를 실행하십시오. wsl code .를 사용하여 Linux로 인라인 전환하고 VS Code로 이동한 다음 Windows 쉘로 돌아갈 수도 있습니다. 😏

개인적으로 저는 Windows에서 개발의 100%를 WSL 2를 사용하여 수행합니다. Git 및 Node.js와 같은 모든 개발 도구가 Linux 환경에 설치되어 있습니다. VS Code를 WSL에서 요구 사항에 맞게 사용자 지정하는 방법에 대한 자세한 내용은 이 팁과 요령 게시물을 확인하십시오.

제 설정 구성을 살펴보겠습니다.

Matt's WSL 2 setup

스크린샷에서 WSL 2 인스턴스에 연결되어 있음을 알 수 있습니다 (원격 소스로 왼쪽 하단에 'Ubuntu-18.04' 표시). 디버거에서 Node.js 앱을 시작했으며 중단점에서 멈췄습니다. 디버그 콘솔에서 process.platform을 입력하여 WSL 확장이 모든 편집기 상호 작용을 Linux 환경으로 기본 설정하는 방법을 보여주었습니다. 이 기능을 작동시키기 위해 필요한 구성은 전혀 없습니다. WSL 확장에서 WSL 환경에 연결하기만 하면 됩니다. 또한 줄 끝이 추가 Git 구성 옵션을 설정할 필요 없이 LF로 기본 설정되어 있음을 알 수 있습니다 (Windows에서 오픈 소스 작업 중이라면 이것이 왜 중요한지 이해할 것입니다).

제가 즐겨 사용하는 모든 확장 프로그램이 작동하며 올바른 환경을 대상으로 합니다. 예를 들어, 소스 제어 보기에는 WSL 2에 설치된 Git 버전을 사용하여 프로젝트의 변경 사항이 표시되며, Docker 확장은 Docker Desktop WSL 2 기술 미리 보기에 액세스하도록 구성되어 있습니다.

이 모든 것은 WSL 확장을 사용하여 가능합니다. 편집, 디버깅 및 확장을 포함한 모든 것이 즐겨 사용하는 편집기에서 기대하는 방식대로 작동합니다.

WSL 2의 장점

요약하자면

  • 가상 머신은 리소스 집약적이며 매우 분리된 경험을 만듭니다.
  • 기존 WSL은 매우 연결성이 높았지만 VM에 비해 성능이 상당히 떨어졌습니다.
  • WSL 2는 경량 VM, 완전한 연결성, 그리고 고성능을 갖춘 하이브리드 접근 방식을 제공합니다.

Visual Studio Code에 WSL 확장을 추가하면 모든 장점을 누릴 수 있습니다. 즉, 도구에 대한 Linux 및 Windows 호환성과 뛰어난 성능, 그리고 원활한 개발 경험을 모두 얻을 수 있습니다.

추가 자료

VS Code와 WSL 설정을 돕기 위해 WSL 작업 튜토리얼이 있습니다. VS Code Remote와 SSH 또는 Docker 컨테이너 내에서 작동하는 방법에 대해 더 알고 싶다면 전체 VS Code 원격 개발 설명서를 참조하십시오.

행복한 원격 코딩,

Matt Hernandez, VS Code 프로그램 관리자 @fiveisprime

© . This site is unofficial and not affiliated with Microsoft.