개발자 A: "이거 안 돼. 고쳐줘." (AI: 엉뚱한 답을 줌) 개발자 B: "A 파일 15번째 줄에서 에러가 났어. B 파일이랑 연관된 것 같은데 확인해줄래?" (AI: 완벽한 정답을 줌)
똑같은 AI를 쓰는데, 왜 누구는 칼퇴하고 누구는 야근할까요? 차이는 **질문하는 능력(Prompt Engineering)**에 있어요.
AI는 점쟁이가 아니에요. 여러분이 상황(Context)을 자세히 설명해줄수록, 더 똑똑해지는 비서죠. 오늘은 AI를 200% 활용해서 버그를 때려잡는 법을 배워봅시다.
이 글을 읽고 나면:
- "고쳐줘" 한 마디보다 100배 효과적인 질문법을 알게 돼요.
- AI에게 **맥락(Context)**을 제공하는 노하우를 익힐 수 있어요.
- 더 이상 에러 앞에서 혼자 끙끙대지 않게 돼요.
1. 질문의 3박자: 코드, 에러, 의도
AI한테 질문할 때 꼭 들어가야 할 3가지가 있어요. 이 중 하나라도 빠지면 AI는 소설을 쓰기 시작해요.
- 관련 코드 (Code): 문제가 발생한 파일의 내용 (전체 말고 관련 부분만)
- 에러 메시지 (Error): 아까 배운 WHAT, WHY, WHERE
- 나의 의도 (Intent): "나는 원래 ~하려고 했어"
나쁜 질문: "에러 났어. 고쳐줘." (정보량 0)
좋은 질문:
page.tsx랑api/route.ts코드 보여주면서- "500 Internal Server Error가 떴어."
- "나는 버튼 누르면 DB에 저장되게 하고 싶었어."
2. 실전: 맥락(Context) 주입하기
AI는 여러분의 컴퓨터를 볼 수 없어요. 마치 의사 선생님과 환자 사이와 같습니다.
❌ 실패하는 대화 (나쁜 환자)
나: "선생님, 아파요. 고쳐주세요." 의사(AI): "어디가 아프신가요? 머리? 배? 알 수가 없네요." (나의 속마음: 아니, 의사가 그것도 몰라?)
⭕ 성공하는 대화 (좋은 환자)
나: "선생님, 어제 생선회를 먹었는데 오늘 아침부터 배가 아프고 열이 나요." 의사(AI): "아하, 식중독 같네요. 약 처방해드릴게요."
개발도 똑같습니다. "안 돼"라고만 하면 AI도 모릅니다.
"내가 login.tsx에서..." 하고 구구절절 설명해야 합니다.
실전 예시:
나: "내가 지금 login.tsx에서 로그인하고 dashboard.tsx로 이동했어.
근데 dashboard.tsx 10번째 줄에서 user is null 에러가 나.
로그인 상태 관리는 auth-context.tsx에서 하고 있어.
이 파일 3개 내용 참고해서 원인 찾아줘."
(관련 파일 3개 코드 복붙)
AI: "아! auth-context.tsx를 보니까, 페이지 이동할 때 상태 업데이트가 느리네요.
dashboard.tsx에서 데이터를 읽기 전에 '로딩 중' 체크를 안 해서 그렇습니다."

3. "잠깐, 왜?" 라고 물어보기
AI가 코드를 줬다고 넙죽 받아서 복사하면 안 돼요. 그 코드가 또 다른 버그를 만들 수도 있거든요.
코드를 받기 전에, 혹은 받은 후에 꼭 물어보세요. "왜 그렇게 고쳐야 해?"
AI: "이 줄을 지우고 저렇게 바꾸세요." 나: "왜? 원래 코드는 뭐가 문제였어?" AI: "원래 코드는 비동기(async) 처리를 안 기다리고 넘어가서..."
이 대화 과정이 진짜 공부예요. AI는 가끔 대충 둘러대기도 하는데, 우리가 "왜?"라고 파고들면 "아, 죄송해요. 다시 생각해보니..." 하면서 더 정확한 답을 내놓기도 합니다.
4. AI랑 짝 코딩(Pair Programming) 하기
디버깅은 범인을 찾는 추리 게임이에요. 탐정(나)과 조수(AI)가 되어 수사를 진행해보세요.
- 단서 수집: 에러 로그, 이상한 동작 캡처
- 용의자 지목: "내 생각엔 DB 연결 쪽 문제 같은데, 넌 어떻게 생각해?"
- 검증: "그럼 로그를 찍어볼까? 어디에
console.log넣으면 좋을까?"
저도 개발하다 막히면 AI한테 이렇게 말해요. "나 지금 길을 잃었어. 처음부터 다시 차근차근 점검해볼까? 체크리스트 만들어줘." 그러면 AI가 아주 훌륭한 디버깅 파트너가 되어줍니다.
오늘의 핵심 정리
✅ AI는 점쟁이가 아니다. 코드, 에러, 의도를 다 줘야 한다. ✅ **맥락(Context)**이 없으면 엉뚱한 답이 나온다. (관련 파일 다 보여주기) ✅ 정답만 베끼지 말고 **"왜?"**라고 물어봐야 내 실력이 된다.
✅ AI한테 요청할 때: "이 파일(A, B)을 참고해. 내가 버튼을 눌렀는데 이런 에러(로그)가 떴어. 나는 DB에 저장되길 원했어. 원인이 뭘까?"
셀프체크
이 글을 이해했다면 답할 수 있어요:
□ "이거 안 돼. 고쳐줘"라고만 묻는 것은 왜 나쁜가요? → (정보/맥락이 없어서 AI가 추측 답변만 하므로) □ AI가 이상한 코드를 줄 때 우리가 가져야 할 태도는? → ("왜 이렇게 고쳐야 해?"라고 되묻는 태도) □ 디버깅을 할 때 AI를 ()가 아니라 ()로 생각해야 한다. → (자판기/기계, 동료/파트너)
다음 글 예고
이제 여러분은 에러를 읽을 줄 알고(33편), AI와 함께 고칠 줄도 알게(34편) 되었어요. 스스로 성장할 준비가 거의 다 되었습니다.
다음 글은 이 시리즈의 마지막 편입니다. 이 수업이 끝나고 나서도 여러분이 계속 나아갈 수 있도록, **[앞으로의 여정]**에 대한 이야기를 나누려고 해요. 우리가 함께 걸어온 길을 돌아보고, 다음 목표를 설정해봅시다.
이 시리즈 로드맵
PART 8: 독립 성장 [33편] 에러 메시지 읽는 법 ↓ [34편] AI와 디버깅하기 (지금 여기!) ↓ [35편] 앞으로의 여정 (완결)
AI랑 대화하다가 "와, 얘 진짜 똑똑하네" 느꼈던 순간이 있나요? 댓글로 공유해주세요!