IT/개발

vscode에서 launch.json을 이용하여 프로젝트 하위 폴더 파일 디버깅하기(subfolder 지정)

빗자루검 2025. 7. 30. 17:06
반응형

vscode는 F5를 눌러서 기본적으로 디버깅을 할때 프로젝트 생성 폴더를 Root로 사용합니다. 

이렇다보니 프로젝트 루트에 있는 파일들은 디버깅하기 쉬워도 다른 폴더의 파일을 디버깅하려면 

현재 워킹 디렉토리가 변경되지 않아서 상대경로 문제가 많이 발생하는 골치아픈 일이 생깁니다. 

 

 

1. 다중 폴더 구성

 

아래와 같이 폴더가 구성되어 있고 base_a.py를 디버깅한다면 그냥 평소대로 하면 되겠지만

 

sub01 폴더 아래에 있는 sub01_a.py를 디버깅하려면 좀 복잡해집니다. 

base폴더 아래에 생성된 launch.json을 사용하기 때문이죠. 

 

Visual Studio Code (VS Code)에서 base/sub01 같은 프로젝트 구조를 가지고 있고, 프로젝트는 base 위치에서 생성했지만 실제 디버깅은 sub01 폴더 내의 파일을 기준으로 하고 싶을 때 launch.json을 설정하는 방법을 알려드리겠습니다.

 

2. launch.json 파일 생성 또는 수정

 

VS Code에서 디버그 뷰 (Ctrl+Shift+D 또는 사이드바의 벌레 아이콘)로 이동합니다. 아직 launch.json 파일이 없다면, "launch.json 파일 생성" (Create a launch.json file) 또는 톱니바퀴 아이콘을 클릭하여 생성합니다. Python 프로젝트의 경우 "Python"을 선택하면 기본 템플릿이 생성됩니다.

 

이미 launch.json 파일이 있다면, 해당 파일을 엽니다. 이 파일은 보통 .vscode 폴더 안에 있습니다 (base/.vscode/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: sub folder file debuging", //아무거나
            "type": "python",
            "request": "launch",
            //"program": "${file}",
            "program": "${workspaceFolder}/sub01 /sub01_a.py.py", //디버깅할 파일 이름
            "cwd": "${workspaceFolder}/sub01",  //이부분이 중요, 서브폴더 yolo9 폴더를 작업 디렉토리로 설정합니다.
            "console": "integratedTerminal",
            "args" : ["--p1", "abc"],  //필요한 파라메터를 정의해 줍니다.
            "justMyCode": true
        }
    ]

 

 

이제 sub01_a.py 파일을 편집하면서 F5로 실행하면 직접 디버거가 해당 폴더를 root 폴더로 동작하게 되어

상대경로 문제는 해결되게 됩니다. 

반응형