복습과 연습
핵심 요점
- 버그는 기대한 것과 실제로 일어난 것 사이의 간극이다 — AI에게 양쪽 모두와 정확한 재현 단계를 줘라. 절대 "안 돼요"만 던지지 마라.
- 에러는 글자 그대로 붙여 넣고, 스택 트레이스의 맨 위를 함께 줘라. 당신의 파일을 가리키는 첫 줄이 거의 언제나 출발점이다.
- 바꾸기 전에 확인하라: 가설을 검증하는 라벨 붙은 로그 한 줄을 추가하고, (코드나 커밋 이력에서) 이등분으로 매 단계 탐색 공간을 절반으로 줄여라.
- 증상이 아니라 근본 원인을 고쳐라 — 크래시만 막는 가드나 try/catch는 보통 진짜 문제를 덮어버린다.
- AI가 빙빙 돌면, 맥락을 확실히 아는 것으로 리셋하고, 고치라고 하지 말고 설명하라고 하며, 추측 대신 증거를 더하라.
직접 해보기
다음에 무언가 망가지면, 수정을 요청하기 전에 버그 리포트를 써라. 새 대화에서 AI에게 세 가지를 줘라: 재현 단계, 기대한 것, 그리고 실제로 일어난 것 — 에러는 글자 그대로 복사하고 스택 트레이스 맨 위 프레임을 포함해서. 그런 다음 "고쳐줘"가 아니라 가설과 그것을 싸게 확인할 방법(보통 로그 한 줄)을 요청하라. 그 확인을 실행하고 출력을 다시 붙여 넣은 다음, 그제야 AI가 수정을 제안하게 하라. "안 되는데 도와줘"보다 길이 얼마나 더 곧은지 느껴 보라.
I have a bug. Before suggesting any fix, give me a hypothesis and a cheap way
to confirm it (such as a log line) — don't edit code yet.
Steps to reproduce: [what you did]
Expected: [what should have happened]
Actual: [what happened]
Full error and stack trace:
[paste verbatim]
Relevant code:
[paste the function that failed, plus anything it calls]
What could be causing this, and what should I log to confirm it before we change anything?