버그 사냥꾼: 1분 만에 에러 잡는 디버깅 프롬프트
📝 버그 사냥꾼: 1분 만에 에러 잡는 디버깅 프롬프트
- 🎯 추천 대상: 빨간색 에러 메시지만 보면 가슴이 답답한 주니어 개발자, 오타 하나 때문에 3시간 날려본 경험이 있는 분
- ⏱️ 소요 시간: 1분
- 🤖 추천 모델: ChatGPT-4o, Claude 3.5 Sonnet (추론 능력 중요)
“NullPointerException? 도대체 어디가 널(Null)이라는 거야?”
개발 시간의 80%는 디버깅에 쓰인다는 말이 있습니다. 에러 메시지는 불친절하고, 코드는 너무 복잡하죠. 눈 빠지게 모니터를 쳐다보는 대신 AI에게 부탁하세요. 얘는 지치지도 않고 수천 줄의 코드를 1초 만에 스캔합니다.
⚡️ 3줄 요약 (TL;DR)
- 에러 메시지와 관련 코드를 분석하여 문제 원인(Root Cause) 식별
- 수정된 코드(Fixed Code)와 함께 왜 고쳐야 하는지 이유 설명
- 재발 방지를 위한 방어 코드(Defensive Code) 제안
🚀 해결책: “에러 터미네이터”
아래 PROMPT 내용을 복사해서 사용하세요.
역할 (Role): 너는
[천재적인 버그 헌터이자 소프트웨어 엔지니어]야.상황 (Context): 코드를 실행했는데 에러가 발생했거나 원치 않는 결과가 나와. 원인을 못 찾겠어.
요청 (Task):
- [원인 분석]: 에러 메시지를 해석하고, 코드의 어느 부분이 문제인지 정확히 짚어줘. (논리적 오류인지, 문법 오류인지)
- [솔루션]: 버그를 수정한 코드를 보여줘. (변경된 부분은 주석으로 표시)
- [예방책]: 앞으로 이런 실수를 안 하려면 어떤 습관을 가져야 하는지, 혹은 추가하면 좋을 ‘예외 처리’ 코드를 알려줘.
에러 메시지:
[에러 로그를 붙여넣으세요]작성한 코드:
[문제가 되는 코드를 붙여넣으세요]
🧬 프롬프트 해부 (Why it works?)
이 프롬프트는 단순히 고쳐주는 것을 넘어 **[원인 분석]**을 통해 학습 기회를 제공합니다. “아, 내가 배열 인덱스를 0부터가 아니라 1부터 세서 틀렸구나”라고 깨닫는 순간 실력이 늡니다. **[예방책]**은 더 견고한(Robust) 코드를 짜는 팁을 줍니다.
📊 증명: Before & After
❌ Before (상황)
자바스크립트에서 Uncaught TypeError: Cannot read properties of undefined (reading 'map') 발생.
(초보자: “맵? 지도가 왜 나와?”)
✅ After (프롬프트 결과)
[원인 분석]
API에서 데이터를 받아오기 전에 화면을 그리려고 해서 발생했습니다. userList라는 변수가 아직 데이터가 안 들어와서 undefined 상태인데, 거기다가 .map() 함수를 쓰니 에러가 난 겁니다. 비동기 처리 문제네요.
[솔루션]
// 수정 전: userList.map(...)
// 수정 후: 옵셔널 체이닝(?.) 사용
userList?.map(user => ...)데이터가 있을 때만 map을 실행하도록 ?. 연산자를 붙였습니다.
[예방책]
API 통신 코드를 짤 때는 항상 ‘데이터가 늦게 올 수 있다’ 혹은 ‘실패할 수 있다’를 가정하고 if (!data) return loading... 같은 코드를 먼저 넣는 게 좋습니다.
🚨 트러블 슈팅 (안 될 땐 이렇게!)
Q. 에러 메시지가 없어요. 그냥 동작이 이상해요. A. 이를 **논리 에러(Logical Error)**라고 합니다. 에러 메시지란에 *“에러는 안 나는데, A를 입력하면 B가 나와야 하는데 C가 나와”*라고 구체적인 증상을 적으세요.
🎯 결론
버그는 실패가 아닙니다. 코드가 더 완벽해지는 과정입니다. (물론 퇴근 직전 버그는 재앙입니다. 빨리 잡으세요.)
이제 칼퇴하고 버그 없는 삶을 즐기세요! 🍷