· 3분 읽기
AI가 놓친 문제를 어떻게 찾고 규칙으로 남겼나
AI와 만든 프로젝트에서 기록된 9개 사례를, 문제가 드러난 경로와 재발 방지 방식으로 나눠 정리했습니다.
AI는 구현을 크게 넓혀 주지만, 잘못된 전제까지 빠르게 코드로 만듭니다. 그래서 작업 전에 명세와 금지 사항을 정하고, 작업 뒤에는 테스트와 실제 사용으로 결과를 확인합니다.
이 글은 그 과정에서 기록에 남은 9개 사례를 정리한 것입니다. 사례마다 문제가 어디서 드러났는지, 원인이 무엇이었는지, 같은 일이 반복되지 않게 무엇을 남겼는지를 봅니다.
어디서 드러났나
| 드러난 경로 | 사례 수 |
|---|---|
| 실기기 테스트 | 3 |
| 결과값 이상 | 2 |
| 배포본 플레이 | 1 |
| 측정 모델 점검 | 1 |
| 테스트 작성 | 1 |
| 데이터 확인 | 1 |
9건 중 7건은 실제 기기에서 써 보거나, 배포본을 플레이하거나, 결과값과 데이터를 직접 확인하는 과정에서 드러났습니다. 테스트를 작성하다 찾은 것과 측정 모델을 점검하다 찾은 것이 각각 1건입니다.
사례 세 가지
동시에 누른 「완료」 중 한 명이 누락됐다
- 문제: 여러 명이 동시에 누른 「완료」 중 항상 한 명이 누락됐습니다.
- 원인: 상태를 나눠 저장하는 사이 다른 요청이 앞선 액션을 덮어썼습니다.
- 재발 방지: 한 트랜잭션 RPC로 합치고, 이 경로만 쓰도록 프로젝트 규칙에 추가했습니다.
실기기 테스트에서 드러난 문제입니다.
전투를 한 번도 하지 않고 완주할 수 있었다
- 문제: 전투를 한 번도 하지 않고 완주할 수 있었습니다.
- 원인: 시뮬레이션 정책이 회피 플레이를 다루지 않아 평균값이 하한처럼 보였습니다.
- 재발 방지: 전투 최소 3회를 구조로 보장하고 복수 정책 시뮬레이션을 요구했습니다.
측정 모델을 점검하다 드러난 문제입니다.
단타 신호가 장중에 항상 0건이었다
- 문제: 단타 신호가 장중에 항상 0건이었습니다.
- 원인: 장중 거래량을 전일 하루 전체와 비교했고, 지연된 오늘 봉을 읽었습니다.
- 재발 방지: 경과 시간으로 기준을 안분하고 실시간 값과 과거 기준선을 분리했습니다.
결과값이 이상해서 드러난 문제입니다.
고치는 데서 끝내지 않기
놓친 문제가 나오면 고치는 데서 끝내지 않고, 같은 실수가 반복되지 않게 무언가를 남깁니다. 9개 사례에서 남긴 것은 네 종류입니다.
- 테스트로 고정: 자정을 넘기는 일정 복제는 날짜 이동을 순수 함수로 분리하고, 서머타임 경우까지 테스트로 고정했습니다.
- 구조로 보장: 전투 최소 3회를 게임 구조로 보장했습니다.
- 프로젝트 규칙: 동시 완료는 트랜잭션 RPC 경로만 쓰도록 규칙에 추가했습니다.
- 에이전트 기억: 이벤트 선택지 문구는 대상과 동사를 필수로 하는 작성 규칙을 에이전트 기억에 남겼습니다.
명세에 남긴 지시문 중에는 규칙을 도구로 강제하라는 것도 있습니다.
프롬프트 지시가 아니라 강제다.
그래서 타입 검사는 훅으로, 위험 명령은 권한 설정으로 막습니다. 반대로 확인하지 못한 것은 숨기지 않게 했습니다.
“확인 안 됨: 실제 브라우저 클릭 조작"으로 명시하고 얼버무리지 않는다
전체 사례는 홈의 ‘AI가 놓친 문제’에서 볼 수 있습니다.