추가 메뉴

강좌
SDD (Specification-Driven Development) 간단 가이드
집사C

Lv.1 집사C (112.♡.133.131)

2026년 1월 4일 AM 01:30 · 수정됨(01. 08. 17:24)

조회 1,012 공감 0

SDD란?

명세 기반 개발(Specification-Driven Development)은 코드를 작성하기 전에 "무엇을 만들 것인가"를 명확히 정의하는 개발 방법론입니다.

쉽게 말씀드리면 개발하기 전에 작성하는 기획서인데 요구 사항만 포함하는 문서라고 러프하게 이해 하시면 될거 같습니다.


핵심 철학

전통적 방식
      SDD 방식
코드가 진실의 원천
     명세가 진실의 원천
명세서는 참고 문서
     명세서가 코드를 생성
코드 먼저, 문서 나중
     명세 먼저, 구현 나중

왜 SDD인가?

  1. 명확한 목표 설정: 만들기 전에 "무엇을"과 "왜"를 정의
  2. 수정 비용 절감: 코드 작성 후 수정보다 명세 수정이 훨씬 저렴
  3. AI 도구 활용 극대화: Claude Code 같은 AI에게 명확한 지시 가능
  4. 커뮤니케이션 개선: 팀원/클라이언트와 동일한 이해 공유

내 요구 조건을 반복적으로 제시하기 위함입니다. 

생성형 AI는 진행하는 대화창에서 쌍둥이를 수없이 많이 만나게 됩니다.
대답하는 녀석이 계속 바뀔수 있다는 것이죠. 

그 때마다 지금 작업을 이해 시킬 수는 없는 노릇입니다.

이것이 위에 1~4 보다 훨씬 중요한 개념입니다.


아래는 예제는 제가 쓰는 것은 아니지만 심플한 템플릿으로 작성된 버젼입니다. 



# [기능명]


## 개요

> 한 줄로 무엇을 만드는지 설명


## 사용자 스토리

**누가**: [사용자 유형]

**원하는 것**: [기능]

**이유**: [목적/가치]


## 동작 명세

- **입력**: [사용자가 하는 행동]

- **처리**: [시스템이 하는 일]

- **출력**: [사용자가 보는 결과]


## 제약 조건

- [제한 사항 1]

- [제한 사항 2]


## 완료 기준

- [ ] [테스트 가능한 조건 1]

- [ ] [테스트 가능한 조건 2]

- [ ] [테스트 가능한 조건 3]




아래는 위 템플릿을 적용한 사례 입니다.



# 도서 검색 기능


## 개요

> 사용자가 키워드로 도서를 검색하여 결과 목록을 확인한다


## 사용자 스토리

**누가**: 도서관 이용자

**원하는 것**: 제목이나 저자명으로 도서를 검색

**이유**: 원하는 책을 빠르게 찾기 위해


## 동작 명세

- **입력**: 검색창에 2글자 이상 키워드 입력 후 엔터 또는 검색 버튼 클릭

- **처리**:

- 제목과 저자명에서 키워드 포함 여부 확인

- 대소문자 구분 없이 검색

- 최대 50건까지 조회

- **출력**:

- 결과 있음: 도서 목록 (제목, 저자, 출판년도)

- 결과 없음: "검색 결과가 없습니다" 메시지


## 제약 조건

- 1글자 검색 불가 (최소 2글자)

- 특수문자 검색 불가

- 검색 결과 50건 초과 시 "검색 결과가 너무 많습니다. 더 구체적인 키워드를 입력해주세요" 표시


## 완료 기준

- [ ] "파이썬" 검색 시 제목에 "파이썬" 포함된 도서 표시

- [ ] "홍길동" 검색 시 저자가 "홍길동"인 도서 표시

- [ ] 1글자 입력 시 "2글자 이상 입력해주세요" 안내

- [ ] 결과 없을 때 안내 메시지 표시

- [ ] 대소문자 구분 없이 "Python"과 "python" 동일 결과




AI 도구와 함께 사용하기

명세서를 AI에게 전달하면 훨씬 정확한 코드를 생성합니다.


아래 명세서에 따라 구현해줘.

[명세서 내용 붙여넣기]



핵심 정리

  1. 명세 = 계약서: 무엇을 만들지 합의하는 문서
  2. 완료 기준이 핵심: 테스트 가능해야 진짜 명세
  3. 작게 시작: 처음엔 간단한 기능부터 연습
  4. 문서는 보관: 나중에 수정할 때 명세부터 확인

참고 자료


AI 개발은 마치 디자인 패턴처럼 무수히 많은 방식이 나오고 있지만 자기에게 맞는 방식을 최적화하는

나만의 개발철학을 접목했을때 훨씬 이해가 쉽고 심플해 집니다.

TDD도 적극적용을 하면 피곤해지니 핵심만 따와서 접목한다던지 사실 이제는 어떤 코딩을 할것인가가 아니고 

어떤 방식으로 AI에게 일을 효과적으로 시킬 수 있는가로 흘러간다고 봅니다.

별 내용은 없지만 도움이 되셨으면 좋겠습니다.


댓글 (1)

  • I

    IT바람 Lv.1

    01.08 · 211.♡.199.157

    감사합니다. 요즘 클로드코드, 안티그라비티 등 여러가지 바이브코딩용 방법론들이 범람하고(?) 있어서 관련 내용을 유튜브에서 계속 살피는 중입니다. 프론트엔드쪽은 상당한 결과물을 만들어내는 반면 DB포함해서 백엔드쪽은 아직은 미덥지않은것 같습니다. 또 웹을 제외한 나머지는 여전히 잘 되지는 않는것 같습니다. 이것도 조만간 진전이 생기겠죠. 간단하게 구조화시켜서 알려주신것 감사합니다. ^^

댓글을 작성하려면 이 필요합니다.