AI 요약
전통적인 문서 형태의 요건은 작성되는 순간부터 실제 개발 현장과 괴리되어 사멸하기 쉽다는 문제의식에서 출발합니다. 저자는 요건이 단순한 텍스트가 아니라 코드, 테스트, 스키마, CI 등 '동작하는 것'에 녹아들어 매일 검증되어야 한다고 주장합니다. 최근 확산된 '바이브 코딩(Vibe Coding)'은 초기 속도는 빠르나 유지보수가 어려운 코드를 양산하는 한계가 있어, 이를 보완하기 위한 '사양 주도 개발'이 대안으로 부상했습니다. 특히 명세의 수신인이 인간에서 AI 에이전트로 변화함에 따라, 기계가 이해할 수 있는 구조화된 '슈퍼 프롬프트'로서의 사양 정의가 필수적입니다. 또한 AI에게 실행 전 승인 단계를 부여하는 'Plan 모드'와 같은 제어 장치를 활용하여 설계의 정밀도를 높여야 합니다. 본문은 요건, 사양, 계약이라는 세 가지 층위를 명확히 분리하여 AI와의 협업 효율을 극대화하는 실무적 설계론을 다루고 있습니다.
핵심 인사이트
- 사양의 수신인 변화: 과거의 사양서는 인간(엔지니어, 테스터)을 위한 것이었으나, 현대의 사양 주도 개발에서는 AI 에이전트가 읽고 실행하는 '슈퍼 프롬프트' 역할을 수행함.
- 바이브 코딩(Vibe Coding)의 한계: 모호한 지시로 코드를 생성하는 방식은 초기 생산성을 높이지만, 기능이 추가될수록 시스템 전체가 붕괴되는 구조적 결함을 가짐.
- 세 가지 계층의 분리: 요건(비즈니스 목표), 사양(시스템 동작 번역), 계약(API 스키마 및 타입 약속)을 명확히 구분해야 AI 구현의 정확도를 보장할 수 있음.
주요 디테일
- 요건(Requirement): "재고가 있는 상품만 검색 가능"과 같이 비즈니스 도메인 언어로 정의된 달성 목표.
- 사양(Specification): "검색 API는 stock_count > 0 필터를 적용하고 최대 20건 반환"과 같은 구체적인 시스템 동작 구현층.
- 계약(Contract): API 스키마, 타입 시그니처(body.items 존재 여부 등), 사전/사후 조건 등 호출 간의 엄격한 약속.
- Plan 모드 활용: AI가 바로 구현에 착수하지 않고, 정보를 수집하고 계획을 세워 사용자 승인을 받는 '브레이크' 기능을 통해 설계 오류를 방지.
- 지속 가능한 요건: 문서가 아닌 코드, 형(Type), 테스트, PR 템플릿 등에 분산되어 매일 실행되고 검증되는 형태만이 가치를 유지함.
향후 전망
- AI 코딩 에이전트가 보편화됨에 따라 개발자의 역할은 단순 코딩에서 '기계가 이해 가능한 정밀한 사양 설계자'로 이동할 것임.
- 텍스트 위주의 정적 문서 대신, 버전 관리가 가능하고 실행 가능한 형태의 '살아있는 명세'가 개발 프로세스의 핵심이 될 것으로 보임.
