파이썬 PDB 디버깅 도구 활용 코드 오류 찾기 단계별 가이드 🐍🔧
안녕하세요! 프로그래밍을 하다 보면 어디서 오류가 나는지, 왜 문제가 생기는지 헷갈릴 때가 많죠? 🤯 특히 파이썬 같은 언어에서는 작은 실수 하나가 전체 프로그램을 멈추게 만들기도 하고요. 오늘은 그런 문제들을 빠르게 해결하는 데 큰 힘이 되는 파이썬 내장 디버깅 도구인 PDB 활용 방법을 차근차근 알려드릴게요! 💡🔍
🚀 파이썬 PDB 디버깅 도구란?
PDB(Python Debugger)는 파이썬에 내장된 강력한 디버거 도구입니다 🛠️.
필요할 때 코드 중간에 멈추고, 변수 값 확인, 실행 흐름 제어, 오류 원인 추적 등을 가능하게 해줍니다.
👉 "어떻게 하면 코드를 멈추고 문제 찾아낼 수 있을까?" 라고 고민한다면, 바로 이 포스트가 정답입니다! ✅
📝 왜 PDB 디버거를 사용해야 할까?
- 🌀 쉽게 코드를 일시 정지시키고 문제 발생 위치 바로 앞까지 돌아볼 수 있어요
- 🔍 변수 값, 호출 스택(콜스택) 등을 한눈에 파악 가능!
- 🧩 복잡한 조건문, 반복문 내부도 차근차근 추적 가능!
- 😅 디버깅 과정이 익숙하지 않은 신입 개발자에게도 쉽고 직관적
🔢 단계별: 파이썬 PDB 디버깅 사용법 가이드
1. ⏳ 먼저 오류가 발생하는 지점 찾기
테스트 또는 실행 중 오류 메시지가 어디서 나는지 잘 파악하세요.❗
(예를 들어, NameError
, TypeError
, IndexError
등)
2. 📝 디버깅 시작 전 준비
- 파이썬 내장 모듈인
pdb
가져오기 필요 없음! 바로 사용할 수 있어요. - 중단점(breakpoint)을 넣고 싶은 위치에 코드에
import pdb; pdb.set_trace()
넣기!
python
def my_function():
a = 10
b = 0
# 여기서 멈추게 하고 싶다면:
import pdb; pdb.set_trace()
return a / b
my_function()
🔑 TIP: Python 3.7 이상부터는 breakpoint()
함수로 더 간편하게 사용 가능!
python
def my_function():
a = 10
b = 0
breakpoint()
return a / b
my_function()
3. 🕹️ 디버거 게이트웨이: pdb
에서 할 수 있는 것들
명령어 | 설명 | 예시 | 비고 |
---|---|---|---|
n 또는 next |
다음 줄로 이동하기 | (Pdb) n |
함수 내 다음 줄 실행 |
c 또는 continue |
중단점까지 계속 실행 | (Pdb) c |
다음 중단점까지 계속 |
s 또는 step |
내부 함수 호출까지 진입 | (Pdb) s |
함수 내부 상세 검사 |
l 또는 list |
코드 보여주기 | (Pdb) l |
현재 위치 주변 코드 보기 |
p 또는 print |
변수 값 출력 | (Pdb) p 변수명 |
변수의 상태 확인 |
q 또는 quit |
디버거 종료 | (Pdb) q |
디버깅 종료 후 프로그램 종료 |
🧐 이건 꼭!: 변수 값을 여러 개 보고 싶을 때는 p 변수1
, p 변수2
반복하세요!
4. 💡 실전 팁 & 꼼수
- 조건문에서 에러 찾기:
p
명령어로 조건문에서 변수 상태 체크 - 스택 트레이스 보기:
bt
명령어로 호출 스택 쭉 보기 (Back Trace) - 변수 바인딩 저장:
alias
활용 or 변수들을 미리 저장해서 빠르게 참조
🎯 실전 예제: 오류 찾기와 해결 과정
아래 코드를 예로 들어 볼게요!
python
def divide_numbers(num1, num2):
import pdb; pdb.set_trace()
result = num1 / num2
return result
print(divide_numbers(10, 0))
이 프로그램은 실행하는 순간 ZeroDivisionError
가 뜨지만,
PDB를 넣은 후 set_trace()
에서 멈춰서 디버깅이 가능해요!
💥 절차:
- 프로그램 실행 → 멈춤
(Pdb) p num1
→ 10 출력(Pdb) p num2
→ 0 출력(Pdb) n
또는(Pdb) c
→ 오류 발생 직전까지 계속 실행- 또는,
(Pdb) q
로 종료 후 오류 수정 가능!
🔧 유용한 활용 팁!
⭐ 실수 방지용 실시간 변수 체크:
- 디버깅 시
p
명령어로 변수 값 쭉 확인 - 필요한 변수만 선별해서 빠르게 체크 가능!
⭐ 중단점 여러개 설정:
- 여러 위치에
pdb.set_trace()
넣기 - 또는
breakpoint()
여러개 만들어서 상황에 맞게 제어 가능!
⭐ 로깅과 병행:
디버깅 전후로 logging
과 병행하면 긴 시간 후 오류 원인 찾기도 쉬워요!
✅ 결론: 파이썬 PDB 디버깅 핵심 포인트 요약
- 📝 코드를 수정하지 않고도 문제 해결 가능!
- 🔎 변수, 흐름, 함수 콜 스택 등 빠른 체크 가능!
- 🚀 디버깅 구문
import pdb; pdb.set_trace()
혹은breakpoint()
사용! - 🖥️ 명령어 숙지 및 실전 연습이 가장 중요한 포인트!
🎁 추가 자료 & 다음 단계
- 공식 문서: 파이썬 pdb 공식 문서 읽어보기
- 추천 영상 강좌: 유튜브
파이썬 디버깅
검색 추천! - 실전 연습: 작은 스크립트에 디버깅 코드 넣어서 직접 실습 도전!
이제 파이썬 디버깅의 무서움은 옛말! 🦸♂️🦸♀️
지금 바로 pdb
활용에 도전해서, 오류 잡는 마스터가 되어 보세요! 💥🔥
🔚 그럼 오늘도 버그 잡는 전문가 되세요! 성공적인 코딩 라이프를 응원할게요! 🎉😊
이전 글 보기!!
댓글