VSCode(Visual Studio Code)로 작성한 프로그램에 argument를 전달하려면 

  • terminal에서 수행 시 argument를 전달하거나
  • VSCode에서 수행 시 launch.json 파일에 정의하여 전달하면 된다.

본 문서에서는 argument를 launch.json 파일에 설정하는 방법을 설명한다.

launch.json(디버깅 환경설정 파일) 설정

 launch.json(디버깅 환경설정 파일) 파일이 없다면 VSCode의 좌측 메뉴에서 [Run and Debug] 을 클릭하고

아래와 같이 나타난 화면에서 "create a launch.json file"을 클릭합니다.

"Select a debug configuration" 에서 Python File 을 선택합니다.

아래와 같이 launch.json 파일이 생성되는데 

"args": ["60"], 을 각 개인의 argument에 맞게 추가해 줍니다. 본문에서는 ["60"] 이렇게 설정했는데 "60" 은 실행되는 python 파일에 전달하는 첫번째 argument 값입니다.

argument 가 여러 개일 경우 ["arg1", "arg2", "arg3"] 식으로 나열하면 됩니다. 단, 숫자는 안되고 문자형식만 됩니다. 즉, argument가 60인 경우, "60" 으로 입력해야 합니다. 

## launch.json

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Current File",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "args": ["60"],
            "console": "integratedTerminal"
        }
    ]
}

이제 VSCode에서 작성한 argument가 필요한 python 파일을 실행해 보면, 위에서 설정한 argument 값을 받아서 처리하는 것을 확인할 수 있습니다.

 

 
아래는 launch.json 파일의 속성들에 대한 설명입니다.

launch.json

다음 속성은 실행구성에 필수 요소입니다.

  • type : 실행구성에 사용할 디버거 유형(node, php, python..등)
  • request : 실행구성의 요청유형 현재는 'launch', 'attach' 입니다.
  • name : 디버그 드롭다운에 나타나는 디버그 런치 이름

다음은 실행구성에서 사용할수 있는 선택적 속성입니다.

  • preLaunchTask : 디버그 세션이 시작되기 전에 작업을 시작하려면 이 속성을 tasks.json 에 지정된 이름으로 설정해야합니다.
  • internalConsoleOptions : 디버깅 세션동안 다버그 콘솔 패널의 가시성을 제어합니다.
  • debugServer : 디버그를 시작하는 대신 지정 포트에 연결합니다.

많은 디버거가 다음 속성 중 일부를 지원합니다.

  • program : 디버거를 시작할 때 실행할 실행 파일 또는 파일
  • args: 디버깅 할 프로그램에 전달된 인수
  • env: 환경 변수
  • cwd: 의존성 및 기타 파일을 찾기위한 현재 작업 디렉토리
  • port: 실행중인 프로세스에 연결할 때의 포트
  • stopOnEntry: 프로그램이 시작되면 즉시 중단
  • console: 어떤 종류를 콘솔을 사용할지 지정. 예를 들어 internalConsole, integratedTerminal, externalTerminal.

vscode는 문자열 내부의 변수 대체를 지원 launch.json하며 다음과 같이 미리 정의 된 변수가 있습니다.

  • ${workspaceFolder} : vscode에서 연 폴더의 경로
  • ${workspaceFolderBasename} : vscode에서 슬래시없이 열리는 폴더 이름 (/)
  • ${file} : 현재 열려있는 파일
  • ${relativeFile} : workspaceFolder 에서 현재 열린 파일
  • ${fileBasename} : 현재 열려있는 파일의 기본 이름
  • ${fileBasenameNoExtension} : 파일 확장명이 없는 현재 열린 파일의 기본 이름
  • ${fileDirname} : 현재 열려있는 파일의 디렉토리 이름
  • ${fileExtname} : 현재 열려있는 파일의 확장자
  • ${cwd} : 시작시 태스크 러너의 현재 작업 디렉토리
  • ${lineNumber} : 활성 파일에서 현재 선택된 행 번호

+ Recent posts