코드가 에러를 뱉는데 원인을 모를 때, 에러 메시지와 코드를 Claude에 붙여넣으면 원인과 해결 방향을 빠르게 찾을 수 있습니다. 이 글은 Claude Code 같은 도구 없이도 일반 claude.ai 대화창에서 에러 로그·스택 트레이스를 가지고 디버깅하는 방법을 정리합니다. (Claude의 제안이 항상 정답은 아니므로, 수정한 코드는 반드시 직접 실행·테스트로 확인하세요.)
1. 디버깅할 때 무엇을 붙여넣나
좋은 진단은 좋은 정보에서 나옵니다. 다음 세 가지를 함께 주면 Claude가 원인을 훨씬 정확히 짚습니다.
- 에러 메시지·로그 전문: 잘라내지 말고 전체를. 특히 스택 트레이스에서 ‘어디서 났는지’를 가리키는 줄이 중요합니다.
- 문제가 난 코드: 에러가 가리키는 부분과 그 주변, 관련 함수·설정까지.
- 환경과 기대 동작: 언어·버전(예: Python 3.12), 실행 환경, “원래 이렇게 동작해야 한다”는 기대.
2. 좋은 디버깅 질문 예시
“아래 Python 코드를 실행하면 이 에러가 나. 원인이 뭔지, 어떻게 고치면 되는지 알려줘. [에러 전문] [코드] 환경: Python 3.12, 입력은 CSV 파일이야.”
- “이 에러 메시지가 무슨 뜻인지 먼저 쉽게 설명해줘.”
- “원인 후보를 가능성 높은 순서로 알려줘.”
- “고친 코드 전체를 주고, 무엇을 왜 바꿨는지 설명해줘.”
3. 원인을 바로 모를 때
에러 메시지만으로 원인이 안 보이면, Claude와 함께 범위를 좁혀갈 수 있습니다.
- 로그 추가: “어디서 값이 잘못되는지 확인할 로그를 어디에 넣으면 좋을지 알려줘.”
- 재현 최소화: “이 문제를 재현하는 최소한의 코드를 만들어줘.”(원인 격리)
- 가설 검증: “이 부분이 의심되는데, 확인하려면 무엇을 출력해보면 될까?”
4. 에러 메시지·스택 트레이스 읽는 법 배우기
해결뿐 아니라 에러를 스스로 읽는 힘도 기를 수 있습니다.
- “이 스택 트레이스를 위에서부터 한 줄씩 무슨 뜻인지 풀어줘.”
- “‘undefined is not a function’, ‘NullPointerException’ 같은 흔한 에러는 보통 왜 생겨?”
주의할 점
- 제안은 검증 필수: Claude의 수정이 항상 맞지는 않습니다. 고친 코드를 실제로 실행해 결과를 확인하세요.
- 민감 정보 제거: API 키·비밀번호·실제 고객 데이터가 코드나 로그에 있으면 지우거나 가린 뒤 붙여넣으세요.
- 맥락이 길면 정확도 저하: 거대한 코드 전체보다 관련 부분만 주는 편이 더 정확합니다.
- 맹신 금지: 왜 그렇게 고치는지 설명을 듣고 이해한 뒤 반영하세요. 이해 없는 복붙은 다음 버그를 부릅니다.
자주 묻는 질문
Q. 코드 전체를 다 줘야 하나요?
아니요. 에러와 관련된 부분과 그 주변, 환경 정보면 충분합니다. 너무 큰 코드는 오히려 진단을 흐립니다.
Q. 터미널에서 Claude가 직접 코드를 고치게 할 수도 있나요?
네, 그건 Claude Code(CLI 에이전트)의 영역입니다. → Claude Code 활용 예시(디버그·리팩터)
Q. ‘Claude Code’ 도구 자체가 에러를 내요.
도구 자체 에러는 다른 문제입니다. → Claude Code 에러 메시지 읽는 법
개발자를 위한 전반적 활용은 역할별 Claude 활용법도 참고하세요.