본문으로 바로가기
리옵트 핸드북
리옵트 핸드북
Kiro 고급 활용Ch1. 플랜 & 환경 설정Ch2. Steering 마스터하기Ch3. 멀티세션 워크플로우Ch4. 서브에이전트 활용Ch5. Hooks 시스템Ch6. MCP 서버 연동Ch7. Powers & 커스텀 도구Ch8. Autopilot 모드 활용Ch9. 컨텍스트 관리Ch10. IDE 기능 활용Ch11. Spec 기반 개발Ch12. 바이브코딩 실전 패턴Ch13. 커뮤니티 & 리소스Ch14. 트러블슈팅 & FAQ엔터프라이즈 패턴빠른 참조 가이드

업데이트 히스토리
핸드북›Kiro 고급 활용›Ch11. Spec 기반 개발

Ch11. Spec 기반 개발

Requirements-First·Design-First·Bugfix 세 가지 Spec 워크플로우, 요구사항·설계·구현계획·검증을 담은 Spec 문서 구조와 외부 파일 참조, 반복 개선·팀 협업 활용법

핵심 요약

  • v0.10부터 Spec 워크플로우는 세 가지입니다: 신규는 Requirements-First, 브라운필드 확장은 Design-First, 버그는 Bugfix(Current Behavior→Root Cause→Fix Design).
  • Spec 문서는 개요·요구사항(FR/NFR)·기술 설계·구현 계획(Phase)·테스트 계획·검증 기준·위험 대응으로 구성합니다.
  • #[[file:...]]로 OpenAPI 스펙·DB 스키마·Figma 목업 같은 외부 파일을 참조해 상세 정보를 따로 뺍니다.
  • Spec 작성, 단계별 구현, 테스트 생성, 요구사항 변경 반영까지 Kiro로 반복하면서 코드와 문서를 맞춰 갑니다.
  • 마이크로서비스에서는 서비스별 Spec·공유 계약·버전 디렉토리로 의존성과 변경 이력을 관리합니다.

Spec 기반 개발은 구조화된 문서로 기능을 설계하고 구현하는 체계적인 접근법입니다. 요구사항 정의부터 설계, 구현, 테스트까지 전 과정을 문서로 남기고, Kiro와 함께 반복해서 다듬어 나가는 개발 방법론입니다.

Spec 워크플로우 유형 (v0.10+)

v0.10부터 3가지 Spec 워크플로우를 지원합니다.

워크플로우용도시작점추가 시기
Requirements-First신규 기능 개발요구사항 정의기존
Design-First브라운필드 앱 확장기술 아키텍처/설계v0.10
Bugfix버그 수정이슈 설명v0.10

Design-First Workflow (v0.10)

기존 코드베이스에 기능을 추가할 때는 기술 아키텍처나 설계도에서 출발합니다. 고수준/저수준 설계와 시스템 다이어그램을 넘기면 Kiro가 실현 가능한 요구사항을 자동으로 뽑아냅니다.

Bugfix Spec (v0.10)

버그 수정 전용 Spec으로, 최소한의 변경으로 문제를 해결하는 데 집중합니다.

  1. Current Behavior: 현재 버그 동작 기술
  2. Root Cause Analysis: 근본 원인 자동 분석
  3. Fix Design: 최소 변경 수정 설계

Spec 시스템 개념

Spec의 구성 요소

  1. 요구사항 정의: 기능의 목적과 범위
  2. 기술적 설계: 아키텍처와 구현 방법
  3. 인터페이스 명세: API, UI, 데이터 구조
  4. 구현 계획: 단계별 작업 분할
  5. 검증 기준: 테스트 시나리오와 성공 조건

Spec 문서 구조

기본 Spec 템플릿

---
title: '사용자 인증 시스템'
version: '1.0'
status: 'draft' # draft, review, approved, implemented
created: '2024-02-01'
updated: '2024-02-01'
author: '개발팀'
reviewers: ['팀리더', '시니어개발자']
---

# 사용자 인증 시스템 Spec

## 1. 개요

### 목적

안전하고 사용자 친화적인 인증 시스템을 구현하여
사용자 계정 관리와 보안을 강화합니다.

### 범위

- 이메일/비밀번호 기반 로그인
- 소셜 로그인 (Google, GitHub)
- JWT 토큰 기반 세션 관리
- 비밀번호 재설정 기능

### 제외 사항

- 2FA (다음 버전에서 구현)
- 기업 SSO 연동

## 2. 요구사항

### 기능 요구사항

- FR-001: 사용자는 이메일과 비밀번호로 로그인할 수 있어야 함
- FR-002: 사용자는 Google 계정으로 로그인할 수 있어야 함
- FR-003: 사용자는 비밀번호를 재설정할 수 있어야 함
- FR-004: 시스템은 JWT 토큰을 발급하고 검증해야 함

### 비기능 요구사항

- NFR-001: 로그인 응답 시간은 2초 이내여야 함
- NFR-002: 비밀번호는 bcrypt로 해시화되어야 함
- NFR-003: JWT 토큰은 15분 후 만료되어야 함
- NFR-004: 모든 인증 시도는 로그로 기록되어야 함

## 3. 기술적 설계

### 아키텍처

```mermaid
flowchart LR
    A[Client] --> B[Auth Controller]
    B --> C[Auth Service]
    C --> D[User Repository]
    C --> E[JWT Service]
    C --> F[OAuth Service]
    D --> G[Database]
```

### 데이터 모델

외부 스키마 참조: #[[file:database/auth-schema.sql]]

### API 설계

OpenAPI 스펙 참조: #[[file:docs/auth-api.yaml]]

## 4. 구현 계획

### Phase 1: 기본 인증 (1주)

- [ ] 사용자 모델 및 데이터베이스 스키마
- [ ] 회원가입 API
- [ ] 로그인 API
- [ ] JWT 토큰 발급/검증

### Phase 2: 소셜 로그인 (1주)

- [ ] Google OAuth 연동
- [ ] GitHub OAuth 연동
- [ ] 소셜 계정 연결 로직

### Phase 3: 비밀번호 관리 (3일)

- [ ] 비밀번호 재설정 요청
- [ ] 이메일 인증 링크 발송
- [ ] 새 비밀번호 설정

### Phase 4: 보안 강화 (2일)

- [ ] 로그인 시도 제한
- [ ] 보안 로그 기록
- [ ] 토큰 갱신 메커니즘

## 5. 테스트 계획

### 단위 테스트

- Auth Service 메서드 테스트
- JWT 토큰 생성/검증 테스트
- 비밀번호 해시/검증 테스트

### 통합 테스트

- 로그인 플로우 전체 테스트
- 소셜 로그인 연동 테스트
- 비밀번호 재설정 플로우 테스트

### E2E 테스트

- 사용자 회원가입부터 로그인까지
- 소셜 로그인 전체 플로우
- 비밀번호 재설정 전체 플로우

## 6. 검증 기준

### 성공 조건

- 모든 기능 요구사항 구현 완료
- 단위 테스트 커버리지 90% 이상
- 통합 테스트 모두 통과
- 성능 요구사항 충족

### 검토 체크리스트

- [ ] 코드 리뷰 완료
- [ ] 보안 검토 완료
- [ ] 성능 테스트 완료
- [ ] 문서화 완료

## 7. 위험 요소 및 대응

### 기술적 위험

- OAuth 연동 복잡성 → 단계별 구현으로 리스크 분산
- JWT 보안 이슈 → 업계 표준 라이브러리 사용

### 일정 위험

- 소셜 로그인 연동 지연 → 기본 인증 우선 완성 후 진행

## 8. 참고 자료

- [JWT 베스트 프랙티스](https://auth0.com/blog/a-look-at-the-latest-draft-for-jwt-bcp/)
- [OAuth 2.0 보안 가이드](https://tools.ietf.org/html/rfc6749)
- [OWASP 인증 가이드](https://owasp.org/www-project-cheat-sheets/cheatsheets/Authentication_Cheat_Sheet.html)

외부 파일 참조 시스템

API 스펙 참조

# docs/auth-api.yaml
openapi: 3.0.0
info:
  title: Authentication API
  version: 1.0.0

paths:
  /auth/login:
    post:
      summary: User login
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                email:
                  type: string
                  format: email
                password:
                  type: string
                  minLength: 8
      responses:
        '200':
          description: Login successful
          content:
            application/json:
              schema:
                type: object
                properties:
                  token:
                    type: string
                  user:
                    $ref: '#/components/schemas/User'

데이터베이스 스키마 참조

-- database/auth-schema.sql
CREATE TABLE users (
  id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  email VARCHAR(255) UNIQUE NOT NULL,
  password_hash VARCHAR(255),
  name VARCHAR(255) NOT NULL,
  avatar_url VARCHAR(500),
  email_verified BOOLEAN DEFAULT FALSE,
  created_at TIMESTAMP DEFAULT NOW(),
  updated_at TIMESTAMP DEFAULT NOW()
);

CREATE TABLE oauth_accounts (
  id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  user_id UUID REFERENCES users(id) ON DELETE CASCADE,
  provider VARCHAR(50) NOT NULL,
  provider_id VARCHAR(255) NOT NULL,
  created_at TIMESTAMP DEFAULT NOW(),
  UNIQUE(provider, provider_id)
);

CREATE INDEX idx_users_email ON users(email);
CREATE INDEX idx_oauth_provider ON oauth_accounts(provider, provider_id);

디자인 목업 참조

# Spec 문서에서 Figma 파일 참조

UI/UX 디자인: #[[file:design/auth-mockups.figma]]

사용자 플로우: #[[file:design/user-flow.png]]

Kiro와 함께하는 Spec 기반 개발

1. Spec 문서 작성 지원

"사용자 프로필 관리 기능에 대한 Spec 문서를 작성해주세요.
다음 요구사항을 포함해주세요:

- 프로필 정보 조회/수정
- 아바타 이미지 업로드
- 계정 설정 관리"

Kiro가 구조화된 Spec 문서 템플릿을 생성하고,
요구사항 분석부터 구현 계획까지 체계적으로 작성

2. 단계별 구현 가이드

"Auth Spec의 Phase 1을 구현해주세요"

Kiro가 Spec 문서를 참조하여:

- 사용자 모델 생성
- 데이터베이스 마이그레이션 작성
- 회원가입/로그인 API 구현
- JWT 토큰 서비스 구현

3. 테스트 케이스 자동 생성

"Auth Spec에 정의된 테스트 계획에 따라
단위 테스트와 통합 테스트를 작성해주세요"

Kiro가 Spec의 테스트 계획을 바탕으로:

- 각 기능별 단위 테스트 생성
- API 엔드포인트 통합 테스트 작성
- E2E 테스트 시나리오 구현

반복적 개선 프로세스

1. 요구사항 변경 관리

# Spec 문서 업데이트

"고객 피드백에 따라 2FA 기능을 추가해야 합니다.
Auth Spec을 업데이트하고 구현 계획을 수정해주세요"

Kiro가 기존 Spec을 분석하고:

- 새로운 요구사항 통합
- 기술적 설계 업데이트
- 구현 계획 재조정
- 영향도 분석 제공

2. 설계 검토 및 개선

"현재 Auth Spec의 보안 측면을 검토하고
개선 사항을 제안해주세요"

Kiro가 보안 관점에서:

- 현재 설계의 취약점 분석
- 업계 베스트 프랙티스와 비교
- 구체적인 개선 방안 제시
- Spec 문서 업데이트

3. 구현 진행 상황 추적

"Auth Spec의 현재 구현 진행 상황을 확인하고
다음 단계를 계획해주세요"

Kiro가 진행 상황을 분석하고:

- 완료된 작업 체크
- 남은 작업 우선순위 조정
- 일정 재검토
- 다음 스프린트 계획 수립

팀 협업에서의 Spec 활용

1. 역할별 Spec 활용

# 백엔드 개발자

"Auth Spec의 API 설계 부분을 구현해주세요"
→ API 엔드포인트, 비즈니스 로직, 데이터베이스 연동

# 프론트엔드 개발자

"Auth Spec의 UI 요구사항에 따라 로그인 폼을 만들어주세요"
→ React 컴포넌트, 폼 검증, API 연동

# QA 엔지니어

"Auth Spec의 테스트 계획에 따라 테스트 케이스를 작성해주세요"
→ 테스트 시나리오, 자동화 스크립트, 검증 기준

2. 코드 리뷰에서 Spec 활용

"이 PR이 Auth Spec의 요구사항을 모두 충족하는지 확인해주세요"

Kiro가 Spec과 구현 코드를 비교하여:

- 요구사항 충족도 검증
- 설계 원칙 준수 확인
- 누락된 기능 식별
- 개선 제안 제공

3. 문서 동기화

"구현이 완료된 후 Auth Spec 문서를 실제 구현에 맞게 업데이트해주세요"

Kiro가 코드를 분석하여:

- 실제 구현과 Spec의 차이점 식별
- 문서 내용 업데이트
- 새로운 기능 추가 반영
- 버전 관리 및 변경 이력 기록

복잡한 프로젝트에서의 Spec 관리

1. 마이크로서비스 Spec 관리

# 서비스별 Spec 구조

project/
├── specs/
│ ├── auth-service.md
│ ├── user-service.md
│ ├── product-service.md
│ └── order-service.md
├── shared/
│ ├── api-contracts/
│ ├── data-models/
│ └── integration-specs/

2. 의존성 관리

# 서비스 간 의존성을 Spec에 명시

## 의존 서비스

- User Service: 사용자 정보 조회 API
- Notification Service: 이메일 발송 API
- Audit Service: 로그 기록 API

## 제공 인터페이스

- Authentication API: 토큰 발급/검증
- User Profile API: 사용자 프로필 관리

3. 버전 관리

# Spec 버전 관리 전략

auth-service-spec/
├── v1.0/
│ ├── spec.md
│ ├── api-spec.yaml
│ └── implementation/
├── v1.1/
│ ├── spec.md
│ ├── api-spec.yaml
│ ├── migration-guide.md
│ └── implementation/

모범 사례

1. Spec 작성 원칙

✅ 좋은 Spec:

- 명확하고 측정 가능한 요구사항
- 구체적인 구현 가이드
- 외부 파일 참조로 상세 정보 제공
- 단계별 구현 계획

❌ 나쁜 Spec:

- 모호한 요구사항
- 구현 세부사항 누락
- 테스트 계획 부재
- 일정 계획 없음

2. 반복 주기 관리

# 2주 스프린트 기준

Week 1:

- Spec 작성/검토
- 설계 확정
- Phase 1 구현 시작

Week 2:

- Phase 1 완료
- 테스트 및 검증
- Spec 업데이트
- 다음 Phase 계획

3. 품질 관리

# Spec 품질 체크리스트

- [ ] 모든 요구사항이 명확히 정의됨
- [ ] 기술적 설계가 구체적임
- [ ] 외부 참조 파일이 최신 상태임
- [ ] 테스트 계획이 포함됨
- [ ] 위험 요소가 식별됨
- [ ] 팀 리뷰가 완료됨

Spec 기반 개발은 복잡한 소프트웨어 프로젝트를 체계적으로 관리하고, 팀 전체가 같은 목표와 방향을 공유하게 해 주는 방법론입니다. Kiro와 함께 쓰면 문서 작성부터 구현, 테스트까지 전 과정을 효율적으로 자동화합니다.

참고 문서

  • Kiro 공식 사이트: https://kiro.dev
  • Spec 워크플로우 블로그: https://kiro.dev/blog/specs-bugfix-and-design-first/
  • Kiro 문서: https://kiro.dev/docs

관련 문서

Ch10. IDE 기능 활용

Vibe/Spec 모드, 인라인 편집·컨텍스트 메뉴·명령 팔레트, settings.json 커스터마이징과 Document Attachments·Hunk-Based Edits 등 Kiro IDE 활용법

Ch13. 커뮤니티 & 리소스

공식 문서·changelog·Discord·GitHub 토픽, Awesome MCP Servers와 cc-sdd 등 오픈소스, 학습 채널과 단계별 Kiro 마스터 로드맵 정리

프롬프트 플레이북

브랜드 설계의 원칙 · AI와 함께 브랜드를 빠르게 설계하기 위한 Brand Context Pack, 시스템 프롬프트, 10분/90분 실행 루트

시나리오: AI 제품 팀

하네스 엔지니어링 · AI 제품 팀에서 하네스가 eval set, safety policy, online telemetry, model rollout 시스템으로 작동하는 방식을 설명합니다.

DESIGN.md 인터페이스

AI 시대의 디자인 시스템 · AI 에이전트에게 브랜드 분위기, 시각 규칙, 레이아웃 철학을 전달하는 상위 디자인 문서

Ch10. IDE 기능 활용

Vibe/Spec 모드, 인라인 편집·컨텍스트 메뉴·명령 팔레트, settings.json 커스터마이징과 Document Attachments·Hunk-Based Edits 등 Kiro IDE 활용법

Ch12. 바이브코딩 실전 패턴

의도 명확화·컨텍스트 제공·제약·예시 기반 프롬프팅, 멀티세션 전략과 점진적 개선, 과도한 세부지정·완벽주의 등 안티패턴 회피로 생산성을 높이는 실전 패턴

On this page

Spec 워크플로우 유형 (v0.10+)Design-First Workflow (v0.10)Bugfix Spec (v0.10)Spec 시스템 개념Spec의 구성 요소Spec 문서 구조기본 Spec 템플릿외부 파일 참조 시스템API 스펙 참조데이터베이스 스키마 참조디자인 목업 참조Kiro와 함께하는 Spec 기반 개발1. Spec 문서 작성 지원2. 단계별 구현 가이드3. 테스트 케이스 자동 생성반복적 개선 프로세스1. 요구사항 변경 관리2. 설계 검토 및 개선3. 구현 진행 상황 추적팀 협업에서의 Spec 활용1. 역할별 Spec 활용2. 코드 리뷰에서 Spec 활용3. 문서 동기화복잡한 프로젝트에서의 Spec 관리1. 마이크로서비스 Spec 관리2. 의존성 관리3. 버전 관리모범 사례1. Spec 작성 원칙2. 반복 주기 관리3. 품질 관리참고 문서