본문 바로가기

AI 개발

AWS Kiro 완전 가이드 — Spec-Driven 개발이 Claude Code랑 뭐가 다른가

반응형

Claude Code는 코드부터 씁니다. Kiro는 코드 쓰기 전에 설계서부터 씁니다. 이 차이가 전부입니다.


핵심 요약

→ Kiro = AWS가 만든 Spec-Driven AI IDE, 2025년 중반 출시
→ 핵심 철학: 요구사항 → 설계 → 태스크 → 코드 순서 강제
→ 3대 차별화 기능: Specs(명세 자동 생성) / Hooks(이벤트 자동화) / Steering Files(지속 컨텍스트)
→ 모델: Amazon Bedrock 경유 Claude Sonnet 4.5/4.6 사용 (모델 선택 자유 없음)
→ 요금: Free(월 50 크레딧) / Pro $19 / Pro+ $40 / Power $200
→ Claude Code는 터미널 에이전트 — 지시 → 실행 직행, 중간 문서 없음
→ Kiro Hooks는 Cursor Rules와 달리 능동적 실행 — 파일 저장 시 테스트 자동 실행 등
→ AWS 네이티브 팀에 최적, Bedrock 모델 락인이 단점


실전 1 — Spec-Driven 개발이 뭔가

Cursor나 Claude Code는 "이 기능 만들어줘"라고 하면 바로 코드를 작성합니다. Kiro는 같은 요청에 코드 대신 명세서 3개를 먼저 만듭니다.

# Kiro의 Spec 3단계 워크플로우

1. requirements.md
   → 사용자 스토리 + EARS 표기법으로 작성된 기능 요구사항
   예: "사용자가 로그인 버튼을 클릭하면 이메일/비밀번호 폼이 표시된다"

2. design.md
   → 기술 아키텍처, 컴포넌트 구조, API 설계
   예: JWT 인증 플로우, DB 스키마, 엔드포인트 목록

3. tasks.md
   → 의존성 순서로 정렬된 구현 태스크 목록
   예: [ ] DB 스키마 생성 → [ ] API 엔드포인트 구현 → [ ] 프론트엔드 연결

개발자가 각 단계를 검토하고 승인해야 다음 단계로 넘어갑니다. 코드는 tasks.md 승인 후에야 생성됩니다.

왜 이 방식이 나왔는가 "3일 동안 코드 짰는데 이게 아니었어요" 문제를 해결하기 위해서입니다. Claude Code나 Cursor로 빠르게 만들었는데 요구사항 자체가 잘못된 경우, 코드를 다 버리고 다시 짜야 합니다. Kiro는 코드 생성 전에 이 오해를 잡습니다.

tasks.md의 독립 태스크는 병렬 실행됩니다. 의존성 그래프를 분석해 순서 없는 태스크는 동시에 처리합니다.


실전 2 — Claude Code와 구조 비교

# Claude Code 워크플로우
개발자: "로그인 기능 만들어줘"
Claude Code: [파일 읽기] → [코드 작성] → [테스트 실행] → 완료
소요 시간: 빠름
산출물: 코드

# Kiro 워크플로우
개발자: "로그인 기능 만들어줘"
Kiro: requirements.md 생성 → 개발자 검토/승인
      → design.md 생성 → 개발자 검토/승인
      → tasks.md 생성 → 개발자 검토/승인
      → 코드 생성 → 완료
소요 시간: 느림
산출물: 명세서 3개 + 코드

항목 Claude Code Kiro

접근 방식 지시 → 즉시 실행 명세 → 검토 → 실행
인터페이스 터미널 IDE (VS Code 기반)
모델 Anthropic 직접 Bedrock 경유 Claude
지속 컨텍스트 CLAUDE.md Steering Files
자동화 없음 (수동 지시) Hooks (이벤트 기반)
모델 선택 자유 Bedrock 종속
신규 기능 개발 보통 강점
기존 코드 수정 강점 보통

실전 3 — Hooks와 Steering Files 실전

Kiro의 핵심 차별화는 Hooks입니다. Cursor Rules가 "이렇게 해줘"라는 수동 가이드라인이라면, Kiro Hooks는 이벤트 발생 시 자동으로 실행됩니다.

# .kiro/hooks/test-on-save.yaml
# 파일 저장 시 자동으로 테스트 실행

name: auto-test
trigger: file_save
pattern: "src/**/*.ts"
action: |
  저장된 파일과 관련된 테스트를 실행하고
  실패한 테스트가 있으면 원인을 분석해서 수정 제안해줘
# .kiro/hooks/doc-update.yaml
# 함수 변경 시 자동으로 JSDoc 업데이트

name: update-docs
trigger: post_tool_use
tool: write_file
pattern: "src/**/*.ts"
action: |
  변경된 함수의 JSDoc 주석을 최신 구현에 맞게 업데이트해줘
# .kiro/hooks/protect-schema.yaml
# DB 스키마 파일 변경 차단 (Pre-hook)

name: protect-db-schema
trigger: pre_tool_use
tool: write_file
pattern: "prisma/schema.prisma"
action: |
  이 파일은 DBA 승인 없이 수정 불가합니다.
  변경이 필요하면 migration 요청서를 먼저 작성해주세요.

Steering Files는 프로젝트 전반에 적용되는 지속 컨텍스트입니다. CLAUDE.md와 유사하지만 Kiro 전 세션에 자동 적용됩니다.

# .kiro/steering/tech-stack.md
## 기술 스택
- Frontend: React 18 + TypeScript
- Backend: FastAPI + PostgreSQL
- 인증: JWT (만료 24시간)

## 코딩 컨벤션
- 함수명: camelCase
- 컴포넌트명: PascalCase
- 에러 처리: 반드시 try-catch + 로깅
- 테스트: 각 함수마다 유닛 테스트 필수

실전 4 — 언제 Kiro, 언제 Claude Code

✅ Kiro가 나은 상황
- 신규 기능 개발 (요구사항 명확히 정의 필요)
- 팀 단위 작업 (명세서가 커뮤니케이션 도구)
- AWS 네이티브 스택 (Bedrock, CodeCatalyst 연동)
- 코딩 표준 강제 필요한 조직 (Hooks로 자동 검수)
- 기술 부채 남기기 싫은 그린필드 프로젝트

✅ Claude Code가 나은 상황
- 기존 코드 수정·리팩토링 (브라운필드)
- 빠른 프로토타입 (스펙 단계가 오버헤드)
- 모델 유연성 필요 (Opus 4.8, Haiku 등 태스크별 선택)
- AWS 이외 클라우드 환경
- 대규모 리팩토링 (Dynamic Workflows 활용)

비용 비교:

Kiro Pro: $19/월 (1,000 에이전트 인터랙션)
Claude Code: Max 플랜 $100/월 (사용량 기반)

→ 소규모 팀/개인: Kiro Pro가 예측 가능한 비용
→ 헤비 유저/대규모 에이전트 작업: Claude Code Max

마무리

✅ Kiro의 핵심은 코드가 아닌 명세서가 소스 오브 트루스라는 철학입니다.
✅ Hooks는 이벤트 기반 자동화 — Cursor Rules보다 능동적이고 강력합니다.
✅ AWS 네이티브 팀, 신규 기능 개발, 팀 코딩 표준 강제가 필요하면 Kiro가 유리합니다.
❌ Bedrock 모델 락인 — 모델 선택 자유 없고 AWS 외 환경엔 불편합니다.
❌ 기존 코드 수정이나 빠른 프로토타이핑엔 Claude Code가 훨씬 빠릅니다.

 

반응형