피드로 돌아가기
Dev.toBackend
원문 읽기
Silent Delegation 제거를 통한 API Contract 무결성 확보 전략
The Spec That Doesn't Lie
AI 요약
Context
AI Agent 기반 코드 생성 시 Gherkin 문법의 정확성만으로는 구현체의 일관성을 보장하지 못하는 한계 존재. 모호한 Spec이 AI의 자의적 판단(Reasonable Decision)을 유도하여 런타임에 API Contract 불일치 문제를 야기하는 구조적 결함 분석.
Technical Solution
- Internal Implementation Leakage 방지를 위해 DB 필드명(db_status) 대신 외부 노출용 도메인 용어(status) 정의
- Underspecified Given 절의 모호성을 제거하여 404, 422 등 HTTP Response Code의 명확한 규정
- ISO 8601 등 데이터 포맷의 강제 명시를 통한 필드 값의 일관성 확보
- Spec 작성 단계에서 '남겨진 결정 사항(Open Decisions)'을 전수 조사하여 AI의 자의적 해석 가능성 차단
- 구현체와 Spec 간의 일치 여부를 단순 Test Pass 여부가 아닌 Contract 준수 여부로 재정의
실천 포인트
- API Response의 모든 필드명과 데이터 타입, 포맷(예: ISO 8601)이 Spec에 명시되었는가? - Given/When/Then 절에 내부 구현 상세(DB 컬럼명, 내부 상태값)가 포함되어 Leakage를 유발하지 않는가? - 'Order not found'와 같이 모호한 표현 대신 구체적인 HTTP 상태 코드와 Error Body 형식을 정의했는가? - 동일한 Spec을 서로 다른 AI Agent에게 주었을 때 서로 다른 구현 결과가 나올 가능성이 없는가?