320x100
320x100

스펙 주도 개발 (SDD, Spec Driven Development)

코드를 작성하기 전에 스펙을 작성하는 개발 방식 (문서 우선 방식)

이때 스펙이라 함은 인간 개발자와 AI 모두에게 신뢰할 수 있는 단일 소스 (source of truth) 역할을 수행

즉, 스펙은 추상화된 개발의 공용어

스펙은 구조화되고 테스트 가능한 언어로 의도를 설명하고, 에이전트가 이에 맞춰 코드를 생성하는 것임

 

 

 

 

 

스펙 주도 개발의 종류

- 스펙 우선 (Spec-first)

잘 정리된 스펙을 먼저 작성하고 이를 AI와 함께 개발하는 과정에서 활용

현재까지 주로 사용하는 방식

 

- 스펙 고정형 (Spec-anchored)

작업 완료 후에도 스펙을 유지하여, 해당 기능의 변경과 유지보수에 계속 활용

 

- 스펙을 소스로 (Spec-as-source)

스펙이 시간이 지남에 따라 주요 소스 파일이 되며, 개발자는 스펙만 수정하고 코드는 직접 건드리지 않음

 

 

 

 

스펙

스펙은 자연어로 작성된 구조화 되고 행동 지향적인 결과물 혹은 관련 결과물의 집합이며, 소프트웨어 기능을 자연어로 표현해서 AI 코딩 에이전트에게 지침을 제공하는 역할을 수행

 

 

 

 

 

SDD 도구

 

Kiro

가장 가벼운 스펙우선 접근 방식 도구

각 작업 단계는 하나의 마크다운 문서로 표현되며, Kiro는 VSCode 배포판 내에서 아래 세 단계를 안내

 

- 작업 흐름

요구 사항 (Requirements) > 설계 (Design) > 작업 (Tasks)

 

 

Spec-kit

Github의 SDD 버전으로, CLI 형태로 배포됨

AI 코딩 어시스턴트를 쓸 때 다양한 범위로 작업 공간에서 설정을 생성할 수 있음

첫 설정을 마치고 나면 개발자는 코딩 어시스턴트에서 슬래시 명령을 통해 Spec-kit를 호출

이 도구에서는 모든 결과물이 작업 공간에 즉시 배치되며, 세 가지 도구 중 사용자 입맛에 맞추는데 가장 우수함

 

- 작업 흐름

헌장 (Constitution) > 스펙화 (Specify) > 계획 (Plan) > 작업 (Tasks)

 

 

Tessl Framwork

스펙을 소스로 추구하는 접근 방식의 도구

Spec-kit과 마찬가지로 다양한 코딩 어시스턴트의 작업 공간과 다양한 구조의 구성을 생성할 수 있는 CLI로 배포됨

Tessl은 세 가지 도구 중 유일하게 스펙 고정형 접근 방식을 명시적으로 지향하며, 스펙을 소스로 삼는 수준까지 탐색

 

 

 

 

 

 

SDD의 실제 적용 가능성

Kiro와 spec-kit은 각기 독자적인 작업 흐름을 제공하지만 이들 중 어느 것도 실제 코딩으로 해결할 문제에 충분히 부합하지 않음

보편적인 적용을 위해서는 다양한 문제 규모를 수용할 수 있어야하는데, 그 부분이 명확하지 않음

작은 버그를 해결하기에는 너무 복잡하고 지나치게 많은 문서를 생성함 

 

 

 

 

 

 

 

 

Reference

https://yozm.wishket.com/magazine/detail/3477/

 

스펙 주도 개발(SDD) 심층 탐구하기 | 요즘IT

소프트웨어 개발은 인공지능(AI) 코딩 도구의 등장으로 급변하고 있으며, 그중 스펙 주도 개발(Spec-driven development, SDD)은 최근 주목받는 용어입니다. SDD는 빠르게 발전하는 분야에서 새로 등장한

yozm.wishket.com

 

300x250
728x90