Spec-Driven Development (SDD)는 단일 모델 단일 세션 접근법의 한계를 극복하기 위해 설계된 AI 기반 소프트웨어 개발 워크플로우입니다. 기능 개발을 여러 개의 이산적인 단계로 분할하고, 각 단계에 전용 에이전트와 독립적인 컨텍스트를 할당하여 컨텍스트 오염을 방지하고 전반적인 출력 품질을 향상시킵니다.

개요

기존 AI 코딩 설정은 하나의 모델, 하나의 컨텍스트 창, 하나의 거대한 세션에서 모든 작업을 처리합니다. 코드베이스 탐색, 아키텍처 제안, 스펙 작성, 설계, 구현, 검증까지 모두 동일한 스레드에서 동일한 모델로 수행되며, 매 턴마다 노이즈가 누적됩니다. 그 결과, 구현 단계에 도달하면 모델이 탐색했던 내용을 절반 이상 잊어버리고, 검증 단계에서는 코드를 비판하기보다 방어하게 됩니다.

SDD는 이 문제를 해결하기 위해 각 단계에 전용 에이전트, 자체 모델, 도구 및 권한을 부여합니다. 오케스트레이터 에이전트가 핸드오프와 승인 게이트를 조정하고, 사용자는 주요 결정 지점에서 검토 및 승인합니다.

배경

SDD는 Gentle-AI 오픈소스 에코시스템의 일부로 개발되었습니다. Guido Russo가 자신의 AI 워크플로우를 구체화하면서 정립한 접근법으로, 단일 모델이 모든 것을 처리해야 한다는 가정에 도전합니다. 2026년 중반 현재, 오픈웨이트 모델 생태계가 충분히 경쟁력 있게 발전하여 SDD와 같은 다중 모델 워크플로우가 실용적이고 비용 효율적으로 운영될 수 있게 되었습니다.

작동 방식

SDD는 다음과 같은 9개 단계로 구성됩니다:

  • Init: 스킬 레지스트리를 부트스트랩하고, 저장소를 매핑하며, 컨벤션을 감지합니다.
  • Explore: 코드베이스(의존성, 패턴 등)를 깊이 읽습니다.
  • Propose: 트레이드오프 분석과 함께 여러 아키텍처 접근법을 생성합니다.
  • Spec: 공식 기술 스펙(계약, 인터페이스, 엣지 케이스)을 생성합니다.
  • Design: 스펙을 구체적인 아키텍처(클래스, 패턴, 다이어그램)로 변환합니다.
  • Tasks: 설계를 순서가 지정된 원자적 구현 작업으로 분해합니다.
  • Apply: 작업을 실행하여 실제 코드를 작성하고 수정합니다.
  • Verify: 적대적 검토를 수행합니다. 테스트 실행, diff 검증, 스펙 대비 확인.
  • Archive: 아티팩트와 결정을 지속적 메모리(Engram)에 보존하여 향후 세션에서 재사용합니다.

각 단계는 전용 하위 에이전트가 담당하며, 고유한 모델, 도구 및 권한을 가집니다. 오케스트레이터 에이전트는 핸드오프와 승인 게이트를 조정하고, Apply와 Archive 단계 전에 사용자 승인이 필요합니다.

주요 아이디어

  • 단계 분리 — 각 단계가 독립적인 컨텍스트를 가지므로 컨텍스트 오염이 방지되고 각 작업에 최적화된 모델을 할당할 수 있습니다.
  • 전용 모델 할당 — 각 단계의 요구사항에 가장 적합한 모델을 선택합니다. 예를 들어, 탐색에는 대규모 병렬 파일 읽기가 가능한 Kimi K2.6, 스펙 작성에는 정밀한 추론이 가능한 DeepSeek V4 Pro를 사용합니다.
  • 승인 게이트 — 주요 결정 지점(Propose, Spec, Design 이후)에서 사용자가 검토하고 승인하여 방향성을 제어합니다.
  • 비용 효율성 — 오픈웨이트 모델과 구독 기반 API(OpenCode Go)를 활용하여 월 10~15달러로 운영 가능합니다.

예시 / 사용 사례

여러 발신자 클라이언트를 가진 전송 계층 기능 개발:

  1. 사용자가 오케스트레이터에 일반 언어로 기능 설명
  2. Init이 ~10초 안에 부트스트랩되어 레지스트리 구축
  3. Explore가 서비스, 인터페이스, 기존 패턴 등 관련 코드베이스 매핑
  4. Propose가 2~3개의 접근법 제시, 사용자가 선택 또는 수정 요청
  5. Spec이 공식 스펙 생성, 사용자 검토 및 승인
  6. Design이 아키텍처 생성, 사용자 승인
  7. Tasks가 번호가 매겨진 작업 목록 생성
  8. Apply가 작업을 순차적으로 실행, Engram에 진행 상황 저장
  9. Verify가 적대적 검토 수행
  10. Archive가 루프 종료 및 아티팩트 저장

관련 개념

출처