버그 사냥꾼: 1분 만에 에러 잡는 디버깅 프롬프트

Author: Zzabbis // Date: 2026-02-04

📝 버그 사냥꾼: 1분 만에 에러 잡는 디버깅 프롬프트

“NullPointerException? 도대체 어디가 널(Null)이라는 거야?”

개발 시간의 80%는 디버깅에 쓰인다는 말이 있습니다. 에러 메시지는 불친절하고, 코드는 너무 복잡하죠. 눈 빠지게 모니터를 쳐다보는 대신 AI에게 부탁하세요. 얘는 지치지도 않고 수천 줄의 코드를 1초 만에 스캔합니다.


⚡️ 3줄 요약 (TL;DR)

  1. 에러 메시지와 관련 코드를 분석하여 문제 원인(Root Cause) 식별
  2. 수정된 코드(Fixed Code)와 함께 왜 고쳐야 하는지 이유 설명
  3. 재발 방지를 위한 방어 코드(Defensive Code) 제안

🚀 해결책: “에러 터미네이터”

아래 PROMPT 내용을 복사해서 사용하세요.

역할 (Role): 너는 [천재적인 버그 헌터이자 소프트웨어 엔지니어]야.

상황 (Context): 코드를 실행했는데 에러가 발생했거나 원치 않는 결과가 나와. 원인을 못 찾겠어.

요청 (Task):

  1. [원인 분석]: 에러 메시지를 해석하고, 코드의 어느 부분이 문제인지 정확히 짚어줘. (논리적 오류인지, 문법 오류인지)
  2. [솔루션]: 버그를 수정한 코드를 보여줘. (변경된 부분은 주석으로 표시)
  3. [예방책]: 앞으로 이런 실수를 안 하려면 어떤 습관을 가져야 하는지, 혹은 추가하면 좋을 ‘예외 처리’ 코드를 알려줘.

에러 메시지:

[에러 로그를 붙여넣으세요]

작성한 코드:

[문제가 되는 코드를 붙여넣으세요]

🧬 프롬프트 해부 (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가 나와”*라고 구체적인 증상을 적으세요.


🎯 결론

버그는 실패가 아닙니다. 코드가 더 완벽해지는 과정입니다. (물론 퇴근 직전 버그는 재앙입니다. 빨리 잡으세요.)

이제 칼퇴하고 버그 없는 삶을 즐기세요! 🍷