WSL에서의 원격 개발
이 튜토리얼에서는 Linux용 Windows 하위 시스템(WSL)을 활성화하고 WSL 확장을 사용하여 WSL에서 Visual Studio Code를 실행하는 방법을 안내합니다.
전제 조건
Visual Studio Code가 설치되어 있어야 합니다.
확장 설치
WSL 확장을 사용하면 Linux용 Windows 하위 시스템(WSL) 내에서 Visual Studio Code를 실행할 수 있습니다.

필수 구성 요소 확인
WSL 확장이 설치되면 맨 왼쪽에 새로운 상태 표시줄 항목이 표시됩니다.

원격 상태 표시줄 항목을 통해 VS Code가 어떤 컨텍스트(로컬 또는 원격)에서 실행되고 있는지 빠르게 확인할 수 있으며, 이 항목을 클릭하면 WSL 확장 명령이 표시됩니다.

WSL 활성화
Linux용 Windows 하위 시스템(WSL)은 Windows 10의 선택적 기능입니다. Windows 기능 대화 상자 또는 PowerShell을 통해 활성화할 수 있습니다.
Windows 기능 대화 상자
Windows 검색창에 '기능'을 입력하여 **Windows 기능 켜기/끄기** 대화 상자를 엽니다. 아래로 스크롤하여 **Linux용 Windows 하위 시스템**을 선택합니다.

**확인**을 선택하면 Windows를 다시 시작하라는 메시지가 표시됩니다.
PowerShell
선택적으로 관리자 권한으로 PowerShell을 열고 다음을 입력할 수 있습니다.
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
명령이 실행된 후 Windows를 다시 시작하라는 메시지가 표시됩니다.

WSL 확인
Windows를 다시 시작한 후 명령 프롬프트를 열고 'wsl'을 입력하여 WSL이 활성화되었는지 확인할 수 있습니다.

WSL이 활성화되었지만 아직 Linux 배포판을 설치하지 않았습니다.
Linux 배포판 설치
Microsoft Store에서 WSL용 Linux 배포판을 설치합니다. 스토어 앱을 사용하거나 Windows 검색창에서 Linux 배포판을 검색할 수 있습니다. 설치하려는 Linux 배포판(예: Ubuntu)을 선택하고 지침을 따릅니다.

**설치**를 선택합니다.

완료되면 **시작**을 선택하여 시작합니다. 그러면 Linux 터미널이 열리고 설치가 완료됩니다. 전체 Linux 인스턴스를 설정하는 것이므로 사용자 ID와 비밀번호를 만들어야 합니다. 이제 Windows에서 Linux를 실행하고 있습니다.

Python 개발
Python이 아직 설치되어 있지 않은 경우 다음 명령을 실행하여 Linux 설치에 Python3와 Python 패키지 관리자인 pip를 설치합니다.
sudo apt update
sudo apt install python3 python3-pip
확인하려면 다음을 실행합니다.
python3 --version
표준 "Hello World" 앱으로 시작합니다. "helloWorld"라는 새 폴더를 만든 다음 실행 시 메시지를 출력할 Python 파일을 추가합니다.
mkdir helloWorld && cd helloWorld
echo 'print("hello from python on ubuntu on windows!")' >> hello.py
python3 hello.py
원격 Linux 환경(이 WSL 배포판은 기술적으로 UI가 없는 별도의 머신으로, 컴퓨터에서 로컬로 실행됨)에서는 개발 도구 및 환경이 상당히 제한적입니다. 파일 편집을 위해 터미널에서 Vim을 실행하거나 \\wsl$ 마운트를 통해 Windows 측의 소스를 편집할 수 있습니다.

이 모델의 문제는 Python 런타임, pip 또는 conda 패키지가 Windows에 설치되어 있지 않다는 것입니다.

Python은 Linux 배포판에 설치되어 있다는 점을 기억하세요. 즉, Windows 측에서 Python 파일을 편집하는 경우 Windows에 동일한 Python 개발 스택을 설치하지 않으면 실행하거나 디버그할 수 없습니다. 이는 모든 Python 도구와 런타임이 설치된 격리된 Linux 인스턴스를 설정하는 목적에 어긋납니다!
WSL에서 실행
WSL 터미널에서 helloWorld 폴더에 있는지 확인하고 'code .'를 입력하여 Visual Studio Code를 실행합니다. '.' 인수는 VS Code에 현재 폴더를 열도록 지시합니다. VS Code의 Insiders 버전을 사용하는 경우 대신 'code-insiders .'를 실행해야 합니다.
참고: 이 명령이 작동하지 않으면 터미널을 다시 시작하거나 설치 시 VS Code를 경로에 추가하지 않았을 수 있습니다.

가장 먼저 "VS Code Server 설치 중"이라는 메시지가 표시됩니다(c7d83e57… 숫자는 방금 설치한 클라이언트 측 도구와 일치하는 VS Code Server 버전입니다). VS Code는 Linux 측에 작은 서버를 설치하며, 데스크톱 VS Code는 이 서버와 통신하게 됩니다. 이 서버는 WSL에 확장을 설치하고 호스트하므로, WSL에 설치된 도구 및 프레임워크의 컨텍스트에서 실행됩니다. 즉, 언어 확장은 올바른 개발 환경을 위해 Windows 측에 설치된 것이 아니라 WSL에 설치된 도구 및 프레임워크를 대상으로 실행됩니다.
다음으로 VS Code가 시작되고 helloWorld 폴더가 열립니다. VS Code가 WSL에 연결 중임을 알리는 빠른 알림이 표시될 수 있으며, Node.js 기반 서버에 대한 액세스를 허용하라는 메시지가 표시될 수 있습니다.

이제 hello.py 위로 마우스를 가져가면 올바른 Linux 경로가 표시됩니다.

통합 터미널
터미널 > 새 터미널(⌃` (Windows, Linux Ctrl+`))을 실행하여 새 터미널 인스턴스를 엽니다.

Windows에서 실행되는 VS Code에서 다시 WSL의 bash 셸 새 인스턴스를 시작합니다.
팁: 상태 표시줄의 왼쪽 하단에서 **WSL: Ubuntu** 인스턴스에 연결되어 있음을 확인할 수 있습니다.

편집 및 디버그
Python 확장(및 추가 도구) 설치
hello.py를 클릭하여 편집합니다. 확장 추천 메시지가 표시되며, 이 경우 풍부한 편집 및 디버깅 환경을 제공하는 Microsoft Python 확장을 설치하라는 메시지가 표시됩니다. **설치**를 선택하고 필요한 경우 다시 로드합니다.

확장이 WSL에 설치되었음을 증명하기 위해 확장 보기(⇧⌘X (Windows, Linux Ctrl+Shift+X))를 다시 엽니다. **WSL: Ubuntu – 설치됨**이라는 섹션이 표시되며, WSL 측에 설치된 확장을 볼 수 있습니다.

다시 로드하면 pylint 린터가 설치되지 않았다는 알림 메시지도 표시됩니다. 린터는 소스 코드의 오류 및 경고를 표시하는 데 사용됩니다. **설치**를 선택합니다.

이제 코드를 편집하면 풍부한 색상 지정 및 자동 완성 기능을 사용할 수 있습니다.

파일을 저장할 때(⌘S (Windows, Linux Ctrl+S)), 파일에 대한 린팅 오류 및 경고가 표시됩니다.

디버깅
도구 설정을 마쳤으면 한 단계 더 나아가 보겠습니다. hello.py의 1행에 중단점을 설정하려면 행 번호 왼쪽의 여백을 클릭하거나 커서를 해당 행에 놓고 F9을 누릅니다.

이제 F5를 눌러 애플리케이션을 실행합니다. 애플리케이션을 실행하는 방법에 대한 질문을 받게 되며, 이는 간단한 파일이므로 **Python 파일**을 선택합니다.

앱이 시작되고 중단점에 도달합니다. 변수를 검사하고, 감시를 만들고, 호출 스택을 탐색할 수 있습니다.
를 눌러 단계별로 실행하면 디버그 콘솔에 print 문 출력이 표시됩니다.

WSL에 설치된 Linux 인스턴스를 사용하여 Visual Studio Code의 전체 개발 환경을 사용할 수 있습니다.
WSL에서 다른 폴더를 열려면 **파일** 메뉴를 열고 **폴더 열기**를 선택합니다. Windows 파일 시스템이 아닌 Linux 파일 시스템에 대한 최소한의 파일 및 폴더 탐색기가 표시됩니다.

Windows로 다시 전환하려면 **로컬 표시** 옵션을 선택하면 표준 Windows 파일 열기 대화 상자가 표시됩니다.
WSL 연결 종료
WSL 세션을 종료하고 VS Code를 로컬로 다시 실행하려면 **파일** > **원격 연결 닫기**를 선택합니다.
축하합니다.
축하합니다! 이 튜토리얼을 성공적으로 완료했습니다!
다음으로 다른 원격 개발 확장을 확인해 보세요.
또는 원격 개발 확장 팩을 설치하여 모두 가져올 수 있습니다.