VS Code로 Python 코드 원격 디버깅하기

디버깅을 편리하게 수행하기 위해 보통 Visual Studio Code와 같은 코드 에디터를 사용합니다. 하지만 코드를 원격 서버에 배포한 후에는 어떻게 디버깅을 해야 할까요? 원격 서버에 VS Code와 같은 에디터가 설치되어 있지 않아도 디버깅 할 수 있는 방법은 없을까요?

이번 글에서는 매우 많은 사람들이 이용하는 VS Code에서 원격 서버에 있는 Python 코드를 디버깅하는 방법을 알아보려고 합니다.

원격 디버깅 시작하기

1. 확장 프로그램 설치

VS Code로 원격 디버깅을 하기 위해서는 우선 아래와 같이 ‘Remote Development’라는 확장 프로그램을 설치해야 합니다. 

아래 사진에서와 같이 Remote Development를 설치하면 관련 패키지인 Remote – SSH, Remote – Containers 등도 함께 설치됩니다.

2. 원격 호스트 접속을 위한 config 파일 작성

Remote Development 확장 프로그램을 설치한 후에는 원격 호스트 접속을 위한 config 파일을 작성해야 합니다. 이 config 파일은 보통 ~/.ssh 폴더 밑에 작성합니다.

그럼 아래와 같은 순서로 config 파일을 작성해보겠습니다. 단축키는 Windows 기준으로 설명하도록 하겠습니다.

1) ctrl + shift + p 를 입력하여 커맨드 팔레트를 엽니다.

2) SSH 호스트 구성…을 클릭합니다.

3) ~/.ssh/config 파일을 클릭합니다.

앞서 언급한 바와 같이 보통 ssh 관련 config 파일은 홈 경로 밑에 있는 .ssh 폴더 밑에 작성합니다. 별도의 경로를 원한다면 설정을 클릭하여 원하는 경로에 파일을 작성하면 됩니다.

4) config 파일에 원격 호스트 정보를 입력합니다.

위 사진과 같이 호스트 정보를 입력합니다.

  • Host – 호스트 구성에 대한 이름과 같은 역할을 합니다. 파일 저장 후 커맨드 팔레트를 열면 여기에 입력한 값이 나타납니다.
  • Hostname – 원격 호스트의 ip 주소나 도메인을 입력합니다.
  • User – 로그인하려는 원격 호스트의 사용자 이름을 입력합니다.
  • IdentityFile – .rsa, .pem 등의 크리덴셜 파일의 경로를 입력합니다. 만약 password 등 다른 정보를 사용해야 할 경우 PasswordAuthentication 등과 같은 옵션을 이용합니다.

5) ctrl + shift + p 를 입력하여 config 파일에 입력한 Host 값을 선택합니다.

config 파일을 저장한 후 ctrl + shift + p를 다시 입력하면 config 파일의 Host 값이 커맨드 팔레트 창에 나타나는 것을 확인할 수 있을 것입니다. 입력하신 Host 값을 클릭하면 새로운 VS Code 창이 열리면서 원격 호스트로 ssh 연결을 시도합니다.

만약 원격 호스트로 접속이 성공한 경우, 왼쪽 막대에 위치한 Explorer를 눌러 Open Folder를 눌러보면 원격 호스트에 있는 폴더를 탐색할 수 있는 창이 나타납니다. 여기까지 왔으면 원격 디버깅을 시작할 준비가 완료된 것입니다.

만약 터미널이 열리면서 ‘permission denied’ 등의 오류가 발생한다면 입력하신 IdentityFile에 문제가 있을 수 있습니다. 이 경우 파일의 접근 권한을 변경해줘야 하는데, 현재 로그인 중인 사용자 계정에만 해당 파일에 대한 접근 권한을 부여해주면 됩니다.

접근 권한을 변경하려면 해당 파일을 우클릭하여 속성 > 보안 > 편집 버튼을 순서 대로 클릭한 후 아래와 같이 해당 계정만 남기고 모두 제거해준 다음 다시 시도해 봅니다.

3. 원격 호스트용 확장 프로그램 설치

이제 원격 디버깅을 위한 모든 준비가 끝났습니다. 우리는 Python 코드로 테스트를 하고 있으니 원격 호스트에서 Python 코드를 디버깅 하기 위해 필요한 확장 프로그램을 설치하도록 하겠습니다. 

확장 프로그램은 로컬 환경에서 이미 설치했다고 하더라도 원격 호스트용으로 다시 설치해줘야 할 수 있습니다. 이 경우 아래 사진과 같이 ‘Install in SSH: test1’이라는 버튼이 활성화됩니다. 우리는 Python 코드를 디버깅할 예정이니 ‘Python’이라는 확장 프로그램을 설치하도록 하겠습니다.

4. 디버깅 시작하기

Python 확장 프로그램을 설치하면 로컬 환경에서와 같이 VS Code 에디터 오른쪽 상단에 디버깅을 수행할 수 있는 실행 버튼이 활성화됩니다. 디버깅이 필요한 지점에 브레이크 포인트를 걸고 디버그 모드 버튼을 눌러보면 브레이크 포인트 지점에서 브레이크가 잘 작동하는 것을 확인할 수 있습니다.

마치며

오늘은 VS Code에서 원격 서버에 있는 Python 코드를 디버깅하는 방법에 대해서 알아봤습니다. 디버깅은 프로그램의 완결성을 높이기 위해 반드시 필요한 작업입니다. 로컬 환경에서는 물론 배포 환경에서도 디버깅을 철저하게 하기 위해서는 출력문을 통해서 단순히 에러만 잡는 것이 아니라 문제가 되는 라인에서 다양한 변수 값들을 확인해보는 것이 중요합니다. 오늘의 글이 저와 같이 배포를 앞둔 시점에서 비슷한 고민을 하는 분들에게 도움이 되길 바랍니다.

1 thought on “VS Code로 Python 코드 원격 디버깅하기”

  1. 초심자 분들이 인터넷 정보를 보고 따라할 때 가장 혼란스러워 하는 부분 중 하나가
    config 파일 원격 호스트 정보에
    Port 22
    정보를 명시를 해야 한다는 걸 알려주지 않는 것 .
    또한 , VSC 가 있는 pc 와 연결 대상 서버에 IdentityFile 설정이 끝나고 연결 시도를 하면
    VSC Remote Development 확장은 기본적으로 ssh 22 번 port 를 사용해 원격 서버와 통신하여
    /home/사용자계정/.vscode-server/
    위치에 vscode-server 를 설치하여 원격 server 와 완전한 연결을 한다는 걸 알고 있어야 한다.

    아래 공식 사이트에서 .rsa IdentityFile 을 활용해 원격 접속 처리하는 자세한 방법이 나와 있다.
    https://code.visualstudio.com/docs/remote/troubleshooting#_configuring-key-based-authentication

    응답

Leave a Comment