[13편] 디버깅 노하우 - 내 코드가 왜 안 돌아갈까?

 디버깅은 단순히 에러를 고치는 작업이 아니라, 컴퓨터가 내 코드를 어떻게 읽고 있는지 그 '사고방식'을 따라가는 과정입니다. 초보자일수록 에러 메시지를 보지 않고 눈으로만 코드를 훑는데, 이는 시간 낭비입니다. 이제부터는 체계적으로 버그를 잡아봅시다.

1. 에러 메시지 읽기: 범인은 항상 메시지에 있다

파이썬 에러 메시지는 정말 친절합니다. 마지막 줄을 보면 에러의 종류(예: SyntaxError, NameError)가 나오고, 그 바로 위를 보면 몇 번째 줄에서 문제가 발생했는지 알려줍니다.

  • SyntaxError: 문법이 틀렸을 때. (콜론이나 괄호가 빠졌는지 확인)

  • NameError: 정의하지 않은 변수를 썼을 때. (오타가 났는지 확인)

  • IndentationError: 들여쓰기가 잘못되었을 때.

에러 메시지가 길어서 겁먹지 마세요. 가장 마지막 줄의 'Error' 이름과 그 앞의 숫자가 적힌 줄 번호만 봐도 90%는 해결됩니다.

2. print() 함수로 변수 값 확인하기

가장 원시적이지만 가장 강력한 방법입니다. 코드가 중간에 멈추거나 결과값이 이상할 때, 각 단계마다 print() 함수를 넣어보세요.

예를 들어, 반복문이 왜 안 도는지 궁금하다면 print("현재 리스트 내용:", items)와 같이 넣어보는 것이죠. 컴퓨터가 데이터를 제대로 가져왔는지, 내가 의도한 대로 값이 변하고 있는지 눈으로 직접 확인하는 것만큼 확실한 방법은 없습니다.

3. 주석으로 코드 하나씩 걷어내기

코드가 너무 길어서 어디서 문제가 생기는지 모를 때는, 일부 코드를 주석(#) 처리하여 기능을 하나씩 꺼보세요. 범위를 좁혀가며 에러가 사라지는 지점을 찾는 것입니다. 이 방법은 복잡한 자동화 로직을 짤 때 버그의 원인을 좁혀가는 아주 효율적인 기법입니다.

4. 실전 팁: 개발자의 친구, 구글링

똑똑한 개발자는 기억력이 좋은 사람이 아니라, 질문을 잘하는 사람입니다. 에러 메시지를 그대로 복사해서 구글에 검색해 보세요. 전 세계 누군가는 반드시 똑같은 고민을 했고, 해결책을 남겨두었을 것입니다. 영어 에러 메시지라면 영문 구글에 검색하는 것이 훨씬 양질의 답변을 얻는 지름길입니다.

[핵심 요약]

  • 에러 메시지의 마지막 줄과 줄 번호를 확인하는 것이 디버깅의 첫걸음이다.

  • 단계별로 print()를 찍어보면 변수 값의 변화 과정을 추적할 수 있다.

  • 에러 메시지를 구글에 검색하여 이미 해결된 사례를 찾아보는 습관을 들이자.

👉 다음 편에서는 코드들을 프로젝트별로 독립적으로 관리하여, 나중에 다른 자동화 프로그램을 설치해도 충돌이 나지 않게 해주는 '가상 환경(Virtual Environment)' 설정법을 다루어 보겠습니다. 규모 있는 자동화로 나아가기 위한 필수 관문입니다.

오늘 디버깅의 기초를 배우셨는데, 혹시 지금 여러분이 작성하신 코드 중 "이유를 알 수 없이 멈추는 부분"이 있으신가요? 에러 메시지가 무엇인지 댓글로 알려주시면, 그 메시지를 어떻게 분석해야 하는지 제가 직접 알려드리겠습니다!

댓글 쓰기

0 댓글

신고하기

프로필

이 블로그 검색

이미지alt태그 입력