버그를 잡을 때 가장 먼저 손이 가는 게 print입니다.
빠르고 간단하지만 한계가 명확.
한 단계 위로 올라가면 디버거가 「변수 들여다보기·한 줄씩 실행·되감기」 같은 강력한 도구를 줍니다.
print 디버깅의 한계.
1) 코드 변경 후 다시 실행 필요.
2) print 흩뿌리고 정리 안 함 → 노이즈.
3) 복잡한 흐름·반복문에서 출력이 너무 많아짐.
4) 변경된 변수만 보고 싶은데 모든 걸 출력.
logging으로 진화.
logging.debug("x=%s", x).
1) 레벨로 필터링.
2) 끄고 켜기 자유.
3) 파일·콘솔·외부로 라우팅.
print보다 한 단계 위.
잘 쓰면 운영 환경에서도 그대로 둘 수 있음.
디버거 진입.
import pdb; pdb.set_trace() (또는 파이썬 3.7+의 breakpoint() 한 줄).
그 줄에서 실행이 멈추고 대화형 디버거 진입.
변수 출력·다음 줄 실행·콜스택 확인 가능.
현대 IDE 디버거.
PyCharm·VS Code의 디버그 모드는 코드 옆에 빨간 점(breakpoint)을 클릭으로 설정, 실행 시 그 줄에서 자동 정지.
변수 패널에 모든 값 표시.
마우스 호버로 변수 즉시 확인.
학습 곡선 낮고 매우 강력.
한 줄 요약
print 디버깅은 빠르지만 한계 명확.
logging이 한 단계 위, breakpoint()로 디버거 진입이 그 다음.
IDE 디버거는 클릭으로 breakpoint·변수 패널까지 통합.
더 알아볼 것
- breakpoint()와 PYTHONBREAKPOINT 환경변수
- ic — icecream 라이브러리
- IDE vs CLI 디버거