PowerShell 개발에 Visual Studio 코드 사용Using Visual Studio Code for PowerShell Development

PowerShell ISE 외에 PowerShell도 Visual Studio Code에서 원활하게 지원됩니다.In addition to the PowerShell ISE, PowerShell is also well-supported in Visual Studio Code. 또한 ISE는 PowerShell Core에 지원되지 않지만 Visual Studio Code는 모든 플랫폼(Windows, macOS 및 Linux)의 PowerShell Core에 지원됩니다.Furthermore, the ISE is not supported with PowerShell Core, while Visual Studio Code is supported for PowerShell Core on all platforms (Windows, macOS, and Linux)

Windows 10을 사용하거나 하위 수준의 Windows OS(예: Windows 8.1 등)에 Windows Management Framework 5.0 RTM을 설치하여 PowerShell 버전 5와 Windows의 Visual Studio Code를 함께 사용할 수 있습니다.You can use Visual Studio Code on Windows with PowerShell version 5 by using Windows 10 or by installing Windows Management Framework 5.0 RTM for down-level Windows OSs (e.g. Windows 8.1, etc.).

시작하기 전에 시스템에 PowerShell이 있는지 확인하시기 바랍니다.Before starting it, please make sure PowerShell exists on your system. Windows, macOS 및 Linux의 현대식 워크로드의 경우 다음을 참조하세요.For modern workloads on Windows, macOS, and Linux, see:

기존 Windows PowerShell 워크로드의 경우 Windows PowerShell 설치를 참조하세요.For traditional Windows PowerShell workloads, see Installing Windows PowerShell.

Visual Studio Code로 편집Editing with Visual Studio Code

1. Visual Studio Code 설치1. Installing Visual Studio Code

  • Linux: Linux에서 VS Code 실행 페이지의 설치 지침을 따릅니다.Linux: follow the installation instructions on the Running VS Code on Linux page

  • macOS: macOS에서 VS Code 실행 페이지의 설치 지침을 따릅니다.macOS: follow the installation instructions on the Running VS Code on macOS page

    중요

    macOS에서 PowerShell 확장이 제대로 작동하려면 OpenSSL을 설치해야 합니다.On macOS, you must install OpenSSL for the PowerShell extension to work correctly. 이를 위한 가장 쉬운 방법은 Homebrew를 설치한 후 brew install openssl을 실행하는 것입니다.The easiest way to accomplish this is to install Homebrew and then run brew install openssl. 이제 VS Code는 PowerShell 확장을 로드할 수 있습니다.VS Code can now load the PowerShell extension successfully.

  • Windows: Windows에서 VS Code 실행 페이지의 설치 지침을 따릅니다.Windows: follow the installation instructions on the Running VS Code on Windows page

2. PowerShell 확장 설치2. Installing PowerShell Extension

  • 다음과 같은 방법으로 Visual Studio Code 앱을 시작합니다.Launch the Visual Studio Code app by:

    • Windows: PowerShell 세션에서 code 입력Windows: typing code in your PowerShell session
    • Linux: 터미널에서 code 입력Linux: typing code in your terminal
    • macOS: 터미널에서 code 입력macOS: typing code in your terminal
  • Ctrl+P(Mac에서는 Cmd+P)를 눌러 Quick Open을 시작합니다.Launch Quick Open by pressing Ctrl+P (Cmd+P on Mac).

  • Quick Open에서 ext install powershell을 입력하고 Enter 키를 누릅니다.In Quick Open, type ext install powershell and hit Enter.

  • 사이드바에 확장 보기가 열립니다.The Extensions view opens on the Side Bar. Microsoft의 PowerShell 확장을 선택합니다.Select the PowerShell extension from Microsoft. 아래와 비슷한 결과가 나타납니다.You should see something like below:

    VSCode

  • Microsoft의 PowerShell 확장에서 설치 단추를 클릭합니다.Click the Install button on the PowerShell extension from Microsoft.

  • 설치 후 설치 단추가 다시 로드로 바뀌는 것을 볼 수 있습니다.After the install, you see the Install button turns to Reload. 다시 로드를 클릭합니다.Click on Reload.

  • Visual Studio Code가 다시 로드되면 편집할 준비가 된 것입니다.After Visual Studio Code has reload, you are ready for editing.

예를 들어 새 파일을 만들려면 파일->새로 만들기를 클릭합니다.For example, to create a new file, click File->New. 저장하려면 파일->저장을 클릭한 후 파일 이름을 지정합니다(예: HelloWorld.ps1).To save it, click File->Save and then provide a file name, let's say HelloWorld.ps1. 파일을 닫으려면 파일 이름 옆에 있는 "x"를 클릭합니다.To close the file, click on "x" next to the file name. Visual Studio Code를 종료하려면 파일->종료를 누릅니다.To exit Visual Studio Code, File->Exit.

설치된 특정 버전의 PowerShell 사용Using a specific installed version of PowerShell

Visual Studio Code에 설치된 특정 버전의 PowerShell을 사용하려면 사용자 설정 파일에 새로운 변수를 추가해야 합니다.If you wish to use a specific installation of PowerShell with Visual Studio Code, you need to add a new variable to your user settings file.

  1. 파일 -> 기본 설정 -> 설정을 클릭합니다.Click File -> Preferences -> Settings

  2. 두 개의 편집기 창이 표시됩니다.Two editor panes appear. 맨 오른쪽 창(settings.json)에서 두 개의 중괄호({}) 사이에 아래에서 사용 중인 OS에 해당하는 설정을 삽입하고 <버전> 을 설치된 PowerShell 버전으로 바꿉니다.In the right-most pane (settings.json), insert the setting below appropriate for your OS somewhere between the two curly brackets ({ and }) and replace <version> with the installed PowerShell version:

     // On Windows:
     "powershell.powerShellExePath": "c:/Program Files/PowerShell/<version>/pwsh.exe"
    
     // On Linux:
     "powershell.powerShellExePath": "/opt/microsoft/powershell/<version>/pwsh"
    
     // On macOS:
     "powershell.powerShellExePath": "/usr/local/microsoft/powershell/<version>/pwsh"
    
  3. 설정을 원하는 PowerShell 실행 파일에 대한 경로로 바꿉니다.Replace the setting with the path to the desired PowerShell executable

  4. 설정 파일을 저장하고 Visual Studio Code를 다시 시작합니다.Save the settings file and restart Visual Studio Code

Visual Studio Code에 대한 구성 파일Configuration settings for Visual Studio Code

이전 단락의 단계를 따라 settings.json에 구성 설정을 추가할 수 있습니다.By using the steps in the previous paragraph you can add configuration settings in settings.json.

Visual Studio Code에는 다음 구성 설정을 권장합니다.We recommend the following configuration settings for Visual Studio Code:

{
    "csharp.suppressDotnetRestoreNotification": true,
    "editor.renderWhitespace": "all",
    "editor.renderControlCharacters": true,
    "omnisharp.projectLoadTimeout": 120,
    "files.trimTrailingWhitespace": true
}

Visual Studio Code 디버깅Debugging with Visual Studio Code

작업 공간 없이 디버깅No-workspace debugging

Visual Studio Code 버전 1.9부터 PowerShell 스크립트가 포함된 폴더를 열지 않고도 PowerShell 스크립트를 디버깅할 수 있습니다.As of Visual Studio Code version 1.9 you can debug PowerShell scripts without having to open the folder containing the PowerShell script. 파일->파일 열기... 로 PowerShell 스크립트 파일을 열고 특정 줄에 중단점을 설정한 후(F9 키 누름) F5 키를 눌러 디버깅을 시작하기만 하면 됩니다.Simply open the PowerShell script file with File->Open File..., set a breakpoint on a line (press F9) and then press F5 to start debugging. 디버거, 단계, 디버깅 다시 시작 및 중지로 나눌 수 있는 디버그 작업 창이 표시됩니다.You should see the Debug actions pane appear which allows you to break into the debugger, step, resume and stop debugging.

작업 영역에서 디버깅Workspace debugging

작업 영역에서 디버깅은 Visual Studio Code의 파일 메뉴에서 폴더 열기... 를 사용하여 연 폴더의 컨텍스트에서 디버깅하는 것을 말합니다.Workspace debugging refers to debugging in the context of a folder that you have opened in Visual Studio Code using Open Folder... from the File menu. 사용자가 여는 폴더는 일반적으로 PowerShell 프로젝트 폴더 및/또는 Git 리포지토리의 루트입니다.The folder you open is typically your PowerShell project folder and/or the root of your Git repository.

이 모드에서도 간단히 F5 키만 눌러 현재 선택된 PowerShell 스크립트의 디버깅을 시작할 수 있습니다.Even in this mode, you can start debugging the currently selected PowerShell script by simply pressing F5. 그러나 작업 영역에서 디버깅을 사용하면 현재 열려 있는 파일만 디버깅하는 것이 아니라 여러 디버그 구성도 정의할 수 있습니다.However, workspace debugging allows you to define multiple debug configurations other than just debugging the currently open file. 예를 들어 다음을 위한 구성을 추가할 수 있습니다.For instance, you can add a configurations to:

  • 디버거에서 Pester 테스트 시작Launch Pester tests in the debugger
  • 디버거에서 인수를 갖는 특정 파일 시작Launch a specific file with arguments in the debugger
  • 디버거에서 대화형 세션 시작Launch an interactive session in the debugger
  • PowerShell 호스트 프로세스에 디버거 연결Attach the debugger to a PowerShell host process

디버그 구성 파일을 만들려면 다음 단계를 수행합니다.Follow these steps to create your debug configuration file:

  1. Ctrl+Shift+D(Mac에서는 Cmd+Shift+D)를 눌러 디버그 보기를 엽니다.Open the Debug view by pressing Ctrl+Shift+D (Cmd+Shift+D on Mac).
  2. 도구 모음에서 구성 기어 아이콘을 누릅니다.Press the Configure gear icon in the toolbar.
  3. Visual Studio Code에서 환경 선택에 대한 메시지가 표시됩니다.Visual Studio Code prompts you to Select Environment. PowerShell을 선택합니다.Choose PowerShell.

그러면 Visual Studio Code에서 작업 영역 폴더의 루트에 ".vscode\launch.json"이라는 파일과 디렉터리를 만듭니다.When you do this, Visual Studio Code creates a directory and a file ".vscode\launch.json" in the root of your workspace folder. 여기에 디버그 구성이 저장됩니다.This is where your debug configuration is stored. 파일이 Git 리포지토리에 있을 경우 일반적으로 launch.json 파일을 커밋하는 것이 좋습니다.If your files are in a Git repository, you typically want to commit the launch.json file. launch.json 파일의 내용은 다음과 같습니다.The contents of the launch.json file are:

{
  "version": "0.2.0",
  "configurations": [
      {
          "type": "PowerShell",
          "request": "launch",
          "name": "PowerShell Launch (current file)",
          "script": "${file}",
          "args": [],
          "cwd": "${file}"
      },
      {
          "type": "PowerShell",
          "request": "attach",
          "name": "PowerShell Attach to Host Process",
          "processId": "${command.PickPSHostProcess}",
          "runspaceId": 1
      },
      {
          "type": "PowerShell",
          "request": "launch",
          "name": "PowerShell Interactive Session",
          "cwd": "${workspaceRoot}"
      }
  ]
}

이는 일반적인 디버그 시나리오를 나타냅니다.This represents the common debug scenarios. 그러나 편집기에서 이 파일을 열면 구성 추가... 단추가 표시됩니다.However, when you open this file in the editor, you see an Add Configuration... button. 이 단추를 눌러 더 많은 PowerShell 디버그 구성을 추가할 수 있습니다.You can press this button to add more PowerShell debug configurations. 한 가지 간편한 구성은 PowerShell: 스크립트 시작입니다.One handy configuration to add is PowerShell: Launch Script. 이 구성을 사용하면 편집기에서 현재 어떤 파일이 활성화되어 있는지 관계없이 F5 키를 누를 때마다 시작되어야 하는 선택적 인수를 갖는 특정 파일을 지정할 수 있습니다.With this configuration, you can specify a specific file with optional arguments that should be launched whenever you press F5 no matter which file is currently active in the editor.

디버그 구성이 설정되면 디버그 보기의 도구 모음에 있는 디버그 구성 드롭다운에서 항목을 선택하여 디버그 세션 중에 사용할 구성을 선택할 수 있습니다.Once the debug configuration is established, you can select which configuration you want to use during a debug session by selecting one from the debug configuration drop-down in the Debug view's toolbar.

Visual Studio Code에 대한 PowerShell 확장 사용을 시작하는 데 도움이 되는 몇 가지 블로그가 있습니다.There are a few blogs that may be helpful to get you started using PowerShell extension for Visual Studio Code:

Visual Studio Code용 PowerShell 확장PowerShell Extension for Visual Studio Code

PowerShell 확장의 소스 코드는 GitHub에서 확인할 수 있습니다.The PowerShell extension's source code can be found on GitHub.