디버깅은 오류가 난 줄을 자동으로 고쳐 주는 기능이 아닙니다. 프로그램을 원하는 줄에서 잠시 멈춘 뒤, 실행 순서와 변수 값을 살펴보며 예상과 달라진 지점을 찾도록 돕는 기능입니다.
아래 실습은 Windows용 VS Code와 Python 파일을 기준으로 합니다. 먼저 Python, VS Code, Microsoft Python 확장과 Python Debugger 확장이 준비되어 있어야 합니다. 설치가 아직이라면 VS Code에서 파이썬 시작하기를 먼저 확인하세요.
1. 연습용 코드를 준비합니다
작업 폴더를 VS Code로 열고 debug_start.py 파일을 만든 뒤 다음 코드를 입력합니다. 마지막 결과는 15가 되어야 합니다.
numbers = [1, 2, 3, 4, 5]
total = 0
for number in numbers:
total = total + number
print("합계:", total)
파일을 저장하고 오른쪽 아래 상태 표시줄에서 사용할 Python 인터프리터가 선택되어 있는지 확인합니다.
2. 중단점을 만듭니다
total = total + number 줄의 번호 왼쪽 여백을 클릭하세요. 빨간 원이 나타나면 중단점이 만들어진 것입니다. 키보드로는 해당 줄에 커서를 둔 뒤 F9를 눌러 중단점을 켜거나 끌 수 있습니다.
중단점은 “이 줄에서 문제가 생겼다”는 표시가 아니라, “이 줄을 실행하기 직전에 상태를 확인하겠다”는 표시입니다. 실제로 프로그램은 중단점이 있는 줄을 실행하기 전에 멈춥니다.
3. 디버깅을 시작합니다
- F5를 누르거나 상단 메뉴에서 Run → Start Debugging을 선택합니다.
- 처음 실행할 때 디버거를 묻는다면 Python Debugger를 선택합니다.
- 구성 종류를 묻는다면 현재 파일을 실행하는 Python File을 선택합니다.
- 프로그램이 중단점에서 멈추고 해당 줄이 강조되는지 확인합니다.
단순한 파이썬 파일은 편집기 오른쪽 위 실행 버튼 옆 화살표에서 Python Debugger: Debug Python File을 선택해 시작할 수도 있습니다. 화면에 보이는 이름은 VS Code 버전과 언어 설정에 따라 조금 다를 수 있습니다.
4. 변수 값을 확인합니다
왼쪽 Run and Debug 영역의 Variables에서 현재 변수 값을 확인합니다. 첫 번째로 멈췄다면 number는 1, total은 아직 0입니다. 현재 줄을 아직 실행하지 않았기 때문입니다.
코드 안의 변수 이름 위에 마우스를 올려도 현재 값을 확인할 수 있습니다. 값이 예상과 다르다면 바로 수정하기 전에 “어느 반복에서 처음 달라졌는가”를 먼저 찾아보세요.
5. 한 줄씩 실행합니다
- 계속 — F5다음 중단점까지 실행합니다.
- 한 단계씩 코드 실행 — F10현재 줄을 실행하고 다음 줄로 이동합니다. 함수가 있어도 안으로 들어가지 않습니다.
- 함수 안으로 들어가기 — F11현재 줄이 함수 호출이라면 함수 내부로 이동합니다.
- 중지 — Shift+F5디버깅을 끝냅니다.
F10을 한 번 누른 뒤 Variables의 total이 1로 바뀌는지 확인합니다. 다시 진행하면 반복문의 다음 차례로 이동하고 number가 2로 바뀝니다. 여러 번 진행하면서 total이 1, 3, 6, 10, 15로 변하는 과정을 살펴보세요.
중단점으로 멈추고, F10으로 한 줄씩 진행하고, Variables에서 값이 바뀌는 시점을 확인하는 것부터 익히면 됩니다.
6. 일부러 오류를 만들어 찾아봅니다
코드를 다음처럼 바꾸면 첫 번째 숫자 1을 제외하고 더하게 됩니다.
numbers = [1, 2, 3, 4, 5]
total = 0
for number in numbers[1:]:
total = total + number
print("합계:", total)
프로그램은 오류 메시지 없이 실행되지만 결과는 14가 됩니다. 같은 위치에 중단점을 두고 실행하면 첫 번째 number가 1이 아니라 2라는 사실을 확인할 수 있습니다. 이렇게 문법상 문제는 없지만 결과가 잘못된 경우를 논리 오류라고 합니다.
디버깅이 시작되지 않을 때
F5를 눌렀는데 밝기나 소리가 바뀝니다
노트북 기능 키가 우선 작동하는 경우입니다. Fn+F5를 사용하거나 Run and Debug의 실행 버튼을 누르세요.
중단점이 회색이거나 멈추지 않습니다
파일이 저장되었는지, 실행 가능한 코드 줄에 중단점을 만들었는지 확인하세요. 빈 줄이나 여러 줄로 이어진 문장 가운데처럼 실행할 수 없는 위치의 중단점은 가까운 실행 가능 줄로 이동할 수 있습니다.
Python 디버거를 찾을 수 없습니다
Extensions의 Installed 목록에서 게시자가 Microsoft인 Python과 Python Debugger 확장이 설치되고 활성화되어 있는지 확인합니다.
머스트랩의 다른 활용 글 보기 →