AI 코딩 도우미에게 일 잘 시키는 법
맥락을 주고, 작게 나누고, 테스트로 확인하기. AI가 만든 코드를 믿고 쓸 수 있게 만드는 작업 방식입니다.
17분2026.10 기준
이 글을 마치면
- 목표·제약·완료 기준을 담아 요청해서, AI가 엉뚱한 곳을 고치는 일을 줄일 수 있습니다.
- 버그를 재현하는 테스트를 먼저 만들게 해서, AI의 수정이 맞는지 객관적으로 판단할 수 있습니다.
- AI에게 리뷰를 맡길 때 무엇을 물어보고, 무엇을 직접 확인할지 압니다.
이런 분께
- AI 코딩 도구를 써 봤지만 결과가 들쭉날쭉한 개발자
- 팀에 AI 코딩 도구 도입을 검토 중인 분
준비물
- AI 코딩 도구 (에디터 플러그인 또는 터미널 도구)
- 테스트를 돌릴 수 있는 프로젝트
단계별 따라하기
목표·제약·완료 기준 먼저 말하기
"로그인 고쳐 줘"보다 무엇이 문제인지, 건드리면 안 되는 부분은 어디인지, 어떻게 되면 끝난 건지를 함께 알려 주세요. 관련 파일 경로와 에러 메시지 원문도 붙여 넣습니다.
같은 일을 막연하게 맡길 때와 구체적으로 맡길 때 항목 막연하게 구체적으로 목표 로그인 고쳐 줘 비밀번호 재설정 메일이 두 번 발송되는 문제 수정 범위 (없음) src/auth/reset.ts, src/mail/send.ts 제약 (없음) 메일 템플릿과 공개 API는 바꾸지 말 것 완료 기준 (없음) 재설정 요청 1회당 메일 1통, 기존 테스트 통과 프롬프트 예시 목표: 비밀번호 재설정 메일이 두 번 발송되는 문제 수정 관련 파일: src/auth/reset.ts, src/mail/send.ts 제약: 메일 템플릿과 공개 API는 바꾸지 말 것 완료 기준: 재설정 요청 1회당 메일 1통, 기존 테스트 통과
작은 단위로 나눠 요청하기
한 번에 기능 전체를 맡기면 검토할 수 없는 크기의 변경이 돌아옵니다. 리뷰할 수 있는 크기, 보통 파일 몇 개 수준으로 나눠 요청하세요.
버그 하나를 리뷰할 수 있는 크기로 나눈 예 순서 요청 끝났는지 확인 1 버그를 재현하는 테스트 작성 테스트가 실패함 2 중복 발송 원인 수정 새 테스트와 기존 테스트가 통과함 3 동시에 두 번 요청하는 경우 보강 동시 요청 테스트가 통과함 4 로그와 주석 정리 변경이 두 파일 안에 머묾 프롬프트 예시 바로 고치지 말고, 이 문제를 리뷰하기 쉬운 단계로 나눈 작업 계획부터 보여 줘. 단계마다 끝났는지 확인하는 방법도 적어 줘.
테스트를 먼저 쓰게 하기
버그라면 먼저 버그를 재현하는 테스트를 만들게 하고, 그 테스트가 실패하는 것을 확인한 다음 수정을 요청하세요. AI의 수정이 맞는지 판단할 기준이 생깁니다.
프롬프트 예시 수정하기 전에, 재설정 메일이 두 번 발송되는 상황을 재현하는 테스트를 먼저 작성해 줘. 지금 코드에서는 이 테스트가 실패해야 해.
AI 답변 예시 재설정 요청을 한 번 보낸 뒤 발송된 메일 수를 세는 테스트입니다. 함수 이름은 프로젝트에 맞게 바꾸세요. 지금 코드에서는 2통이 발송되므로 실패해야 정상입니다.
코드 예시test("재설정 요청 1회에 메일은 1통만 보낸다", async () => { const mailer = createFakeMailer(); await requestPasswordReset("[email protected]", { mailer }); expect(mailer.sent).toHaveLength(1); });확인해 보기
- 테스트를 실행해 '기대 1, 실제 2'처럼 실패하는지 먼저 확인하세요. 처음부터 통과한다면 버그를 재현하지 못한 테스트입니다.
- 수정한 뒤에는 이 테스트와 기존 테스트가 모두 통과해야 합니다.
리뷰도 맡기되, 판단은 직접 하기
변경이 끝나면 놓친 경우나 보안 문제를 찾아 달라고 다시 요청해 보세요. 다만 최종 판단과 배포 결정은 사람이 합니다.
프롬프트 예시 방금 변경 사항을 리뷰해 줘. 동시에 두 번 요청이 들어오는 경우, 메일 발송이 실패하는 경우를 특히 확인해 줘.
AI 답변 예시 확인이 필요한 부분이 두 군데 있습니다.
1) 요청 두 개가 동시에 들어오면, 둘 다 '보낸 기록 없음'을 확인한 뒤 메일을 한 통씩 보낼 수 있습니다. 기록을 저장할 때 같은 요청이 두 번 들어가지 못하게 막는 제약(예: 유니크 키)을 두세요.
2) 메일 발송이 실패해도 '보냄'으로 기록됩니다. 발송에 성공한 뒤에 기록하거나, 실패하면 기록을 되돌려야 사용자가 다시 요청할 수 있습니다.
확인해 보기
- AI가 짚은 문제를 그대로 믿지 말고, 그 경우를 테스트로 만들어 실제로 재현되는지 확인하세요.
- 보안, 결제, 개인정보가 걸린 변경은 사람 리뷰를 한 번 더 거칩니다.
자주 하는 실수
- API 키나 비밀번호가 담긴 파일을 그대로 붙여 넣기
- 검토할 수 없을 만큼 큰 작업을 한 번에 맡기기
- 테스트 없이 '돌아가는 것 같다'는 이유로 머지하기
참고 자료
- Claude Code 모범 사례 — Claude Code 문서 (Anthropic)
- API 키 모범 사례: 키를 안전하고 보안되게 유지하기 — Anthropic 지원 센터
- Best practices for using GitHub Copilot — GitHub Docs