Feature Specs
새 기능을 요구사항 정의, 기술 설계, 구현 계획의 세 단계로 나누어 차근차근 만들어 가는 구조화된 작업 흐름.
Feature Specs란 무엇인가
Feature Specs는 새로운 기능을 추가할 때 머릿속 아이디어를 곧장 코드로 옮기는 대신, 요구사항 → 설계 → 작업 목록의 흐름으로 정리해 두고 진행하도록 안내하는 방법론입니다. 시작 시점에 가진 정보가 무엇이냐에 따라 두 가지 흐름 중 하나를 고를 수 있고, 각 단계에서 생성되는 문서가 그대로 팀 내 공유 자료가 됩니다.
이 방식이 주는 이점
- 구조화된 진행 — 아이디어부터 실제 코드까지 단계별로 가이드
- 유연성 — 자신의 출발점에 맞춰 흐름 선택
- 문서화 — 요구사항·설계 문서가 자동으로 정리됨
- 진행 추적 — 구현 작업의 진척도를 한눈에 파악
- 협업 — 제품·엔지니어링 사이 공통 산출물 공유
언제 사용하면 좋은가
다음과 같은 경우에 잘 어울립니다.
- 계획이 필요한 복잡한 기능
- 여러 작업으로 쪼개야 하는 구현
- 팀 차원의 문서가 필요한 프로젝트
- 요구사항이나 설계를 반복적으로 다듬어야 하는 기능
반대로 단순 버그 수정에는 Bugfix Specs를, 명확한 목표 없이 코드를 탐색하는 작업에는 Spec mode를 사용하지 않는 편이 낫습니다.
두 가지 작업 흐름
Requirements-First
시스템이 어떻게 동작해야 하는지를 먼저 요구사항으로 정리한 뒤, 그로부터 설계와 작업 목록을 도출합니다.
흐름: Requirements → Design → Tasks
다음과 같은 상황에서 적합합니다.
- 목표 동작이 비교적 명확할 때
- 아키텍처를 유연하게 가져갈 수 있을 때
- 고객 피드백 기반의 제품 기능
- 기술적 제약이 적은 그린필드 프로젝트
- 제품 주도형 조직
Design-First
아키텍처나 의사 코드 같은 기술 설계를 먼저 작성하고, 그것을 기반으로 요구사항과 작업을 풀어냅니다.
흐름: Design → Requirements → Tasks
다음과 같은 상황에서 적합합니다.
- 상위 수준 아키텍처가 이미 머릿속에 있는 경우
- 알고리즘이나 pseudocode 형태로 동작을 그려둔 경우
- 지연·처리량·컴플라이언스 등 비기능 요구사항이 엄격한 경우
- 외부에서 작성한 설계 문서를 가져올 때
- 본격 착수 전에 기술적 실현 가능성을 먼저 확인하고 싶을 때
한눈에 비교
| Requirements-First | Design-First | |
|---|---|---|
| 출발점 | 요구사항으로 표현된 동작 | 기술 설계·아키텍처·pseudocode |
| 생성 | 요구사항으로부터 설계 도출 | 설계로부터 요구사항 도출 |
| 적합한 상황 | 제품 주도 개발 | 기술 제약·설계 주도 개발 |
| 보장 항목 | 동작 명세 | 기술적 실현성 |
| 유연성 | 구현이 적응 | 요구사항이 적응 |
EARS 표기법으로 쓰는 요구사항
requirements.md는 EARS(Easy Approach to Requirements Syntax)로 작성됩니다. 조건과 기대 동작을 한 문장에 담아 검증 가능한 형태로 표현합니다.
기본 패턴:
WHEN [condition/event] THE SYSTEM SHALL [expected behavior]
예시:
WHEN a user submits a form with invalid data THE SYSTEM SHALL display validation errors next to the relevant fields
이 방식은 모호함을 줄이고, 그대로 테스트 케이스로 옮길 수 있으며, 구현·검증 단계까지 추적성을 유지하기 좋습니다. 또한 다양한 조건을 빠짐없이 고려하도록 자연스럽게 유도합니다.
설계 전 요구사항 점검
설계 단계로 넘어가기 전에 Kiro에게 요구사항의 모순, 모호함, 충돌, 빠진 항목을 검토하도록 시킬 수 있습니다. 요구사항 생성 직후 채팅 옵션 또는 Continue 드롭다운에서 Analyze Requirements를 선택하면 됩니다.
설계 문서
design.md에는 기술 아키텍처, sequence diagram, 구현 시 고려할 점이 정리됩니다. 컴포넌트가 어떻게 동작하고 서로 어떻게 상호작용하는지를 설명하는 자료입니다.
시작하기
- Kiro 패널의 Specs 영역에서
+버튼을 누르거나, 채팅 패널에서 Spec을 선택합니다. - 만들고 싶은 기능을 설명하는 초기 프롬프트를 입력합니다.
- 의도를 묻는 단계에서 Feature를 선택합니다.
- 작업 흐름으로 Requirements-First, Design-First, Quick Plan(승인 게이트 생략) 중 하나를 고릅니다.
- 각 단계의 결과물을 확인·수정하며 구현 단계까지 진행합니다.
더 알아보기
- Best Practices — Feature Spec을 효과적으로 활용하기 위한 팁