요구사항 먼저 (Requirements-first)

"무엇을 만들 것인가"를 먼저 확정한 뒤 "어떻게 만들 것인가"로 넘어가는, Feature Spec의 가장 전통적인 접근 방식입니다.

이 방식이 어울리는 경우

Requirements-first 워크플로는 사용자 행동과 비즈니스 규칙이 비교적 명확하고, 기술적인 선택지를 요구사항에 맞춰 유연하게 결정할 수 있을 때 가장 잘 작동합니다. 다음과 같은 상황에서 권장됩니다.

전체 흐름

  1. Feature Spec 생성 — Kiro 패널이나 command palette에서 새 spec을 만들고, 안내 화면이 나오면 Requirements-First를 선택합니다.
  2. 요구사항 단계 — Kiro가 requirements.md를 생성합니다. 사용자 스토리와 수용 기준, EARS 형식의 시스템 동작 규칙, 기능 요구사항, 예외 케이스가 함께 작성됩니다. 검토하면서 누락된 시나리오를 보완합니다.
  3. 설계 단계 — 요구사항을 확정하면 Kiro가 design.md를 만듭니다. 아키텍처 개요, 시퀀스 다이어그램, 데이터 모델, 인터페이스 정의, 기술 스택 제안, 오류 처리 전략, 테스트 전략이 포함됩니다.
  4. 작업 단계 — 설계가 확정되면 tasks.md가 생성됩니다. 구현 단위 task에는 설명, 기대 결과, 의존 관계, 필수/선택 표시가 들어 있습니다.
  5. 구현 — task를 하나씩 실행하거나, Autopilot에 맡겨 한 번에 처리할 수 있습니다.
Spec 모드에서 자동 생성되는 설계 문서 예시

EARS 형식 요구사항 예시

요구사항은 모호함을 줄이기 위해 EARS("WHEN ... THE SYSTEM SHALL ...") 패턴으로 작성합니다. 다음은 사용자 등록 시나리오의 일부 예시입니다.

## User Authentication
### User Registration
WHEN a user submits valid registration data
THE SYSTEM SHALL create a new user account
WHEN a user submits an email that already exists
THE SYSTEM SHALL display "Email already registered" error
WHEN a user submits invalid email format
THE SYSTEM SHALL display email validation error

모범 사례

프롬프트 예시. 초기 입력은 다음처럼 충분히 구체적으로 작성하면 좋은 출발점이 됩니다.
Build a user authentication system. Users should be able to register with
email/password, login securely, reset forgotten passwords, and logout.
The system must prevent brute force attacks and validate email formats.

자주 만나는 패턴

  1. 제품 기능 개발 — PM이 정리한 사용자 스토리를 EARS로 정형화한 뒤 설계와 구현으로 이어가는 경우.
  2. 고객 주도형 기능 — 고객 인터뷰나 요청을 요구사항으로 옮기고, 검증한 뒤 설계·구현 단계로 넘기는 경우.
  3. 그린필드 애플리케이션 — 사용자 여정을 정의해 전체 요구사항을 도출하고, MVP task를 한 번에 실행하는 경우.
tasks.md 기반의 구현 단계 진행 화면

문제 해결

요구사항 변경을 코드에 먼저 반영하면 spec 문서와 실제 구현이 어긋나기 쉽습니다. 항상 requirements.mddesign.mdtasks.md 순서로 동기화하는 것을 권장합니다.