DEV 트랙 스포트라이트: 스펙 기반 개발 with Kiro (DEV314)
Source: Dev.to
전통적인 AI 코딩 어시스턴스는 코드 작성 방식을 혁신했지만, 복잡한 프로젝트 요구사항을 다루는 데는 종종 어려움을 겪습니다. 개발자가 프롬프트를 작성하고 AI가 코드를 생성한 뒤 다시 반복하는 전형적인 “vibe coding” 워크플로는 프로토타입에는 잘 맞지만, 팀이 명확한 문서화 없이 혹은 왜 그런 결정을 내렸는지에 대한 이해 없이 진행될 수 있습니다.
Erik Hanchett(AWS 수석 개발자 옹호자)와 Nikhil Swaminathan(AWS 수석 제품 관리 매니저)은 DEV314 세션에서 spec‑driven development(명세 기반 개발)와 Kiro(AWS가 re:Invent 2025 몇 주 전에 일반 제공을 시작한 새로운 에이전시 IDE)를 활용한 다른 접근 방식을 소개했습니다.
“근본적인 변화는 이전에 개발자가 주도하고 제공하던 방식과 달리, AI 편집기에서는 개발자가 AI 에이전트를 조정해 코드를 작성하고 검토하도록 한다는 점입니다. 개발자는 여전히 운전석에 있지만, 워크플로가 달라졌습니다.” – Nikhil Swaminathan
전체 세션 보기
▶️ 전체 세션을 YouTube에서 시청하기 (링크 자리표시자)
Vibe 코딩에서 사양‑주도 개발로의 진화
Vibe 코딩은 지난 1년 동안 엄청난 인기를 얻었으며, 이전에 몇 주가 걸리던 애플리케이션을 몇 시간 안에 프로토타입할 수 있게 했습니다. 그러나 이 접근 방식에는 중요한 문제점이 있습니다. Nikhil은 완벽한 비유를 사용했습니다:
“Slack 스레드. 우리 모두는 메시지 스레드가 100개에 달하는 Slack 대화에 참여해 본 적이 있습니다. 그 스레드를 떠날 때 ‘좋아, 우리가 얻은 교훈은 뭐지? 왜 우리가 내리는 결정을 내리는 걸까?’ 라는 생각을 하게 됩니다. 그리고 때때로 그 맥락 속에서 그 생각이 사라지기도 합니다.”
문제
Vibe 코딩은 전통적인 소프트웨어 개발 수명 주기를 완전히 건너뛰고 있습니다. 역사적으로 팀은 언제나 워터폴이든 애자일이든 방법론을 사용하든 요구사항 문서, 설계 문서, 트레이드‑오프 논의와 같은 산출물로 시작해 왔습니다.
Amazon 내부와 외부의 파워 유저들과 이야기를 나눈 결과, Kiro 팀은 성공적인 개발자들이 이미 코드를 생성하기 전에 계획 단계로 자연스럽게 전환하고 있음을 발견했습니다. 이 통찰을 바탕으로 Kiro에서는 사양‑주도 개발을 1st‑party 워크플로우로 구축하게 되었습니다.
Spec‑Driven Development Workflow
Spec‑driven 개발은 초기 요구사항부터 프로덕션 준비된 코드까지 안내하는 구조화된 워크플로우를 도입합니다.
| Phase | Description |
|---|---|
| Requirements | 사용자 스토리와 수용 기준으로 시작합니다. Kiro는 EARS 형식(Easy Approach to Requirements Syntax)을 사용하며, 요구사항을 “X를 수행하면 시스템은 Y를 수행한다” 형태로 구조화합니다. 이 형식은 이후 워크플로우에서 형식적 추론과 속성 기반 테스트를 가능하게 합니다. |
| Design | 요구사항 및 기존 코드베이스를 기반으로 포괄적인 설계 문서를 생성합니다. 설계에는 고수준 아키텍처(Mermaid 다이어그램 포함), 컴포넌트 인터페이스, 데이터 모델, 구현 세부 사항이 포함됩니다. |
| Task List | 설계를 구체적이고 구현 가능한 작업으로 분해합니다. 작업 목록을 다듬거나, MVP를 우선시하도록 작업 순서를 재배열하거나, 특정 작업(예: 포괄적인 테스트)을 선택 사항으로 표시하여 더 빠르게 결과를 확인할 수 있습니다. |
| Implementation | 작업을 개별적으로 또는 배치로 실행합니다. Kiro는 진행 상황을 추적하고 완료된 작업을 표시하며, 진행 중에 발생한 변경 사항에 따라 남은 작업을 업데이트할 수도 있습니다. |
| Iterative Checkpoints | 언제든지 진행 상황을 체크포인트하고 AI가 탈선했을 경우 이전 상태로 복원할 수 있습니다. 수동 편집은 “Refine” 버튼을 통해 문서에 다시 통합됩니다. |
데모: 면접 준비 앱 만들기
Erik와 Nikhil은 처음부터 면접 준비 애플리케이션을 구축하여 전체 워크플로를 시연했습니다. 단순히 Figma 다이어그램만으로 시작해, 그들은 다음과 같은 기능을 갖춘 앱을 만들었습니다:
- 면접 질문(행동, 기술, 리더십)을 제시합니다
- Web Audio API를 사용해 오디오 응답을 녹음합니다
- 음성을 실시간으로 텍스트로 전사합니다
- Claude AI SDK를 사용해 응답을 분석합니다
- 정성적 피드백과 정량적 점수를 제공합니다
반복적 개발
초기 요구사항에 오디오 전사나 AI 기반 분석이 포함되지 않았을 때, 그들은 단순히 Kiro에게 해당 기능을 추가하도록 요청했습니다. IDE는 일관성을 유지하기 위해 요구사항과 설계 문서를 자동으로 업데이트했습니다.
“여기 제품에 대한 비유가 있습니다. 자동차를 만들 때 처음에는 스케이트보드로 시작하고, 그 다음 자전거, 마지막에 자동차를 만듭니다. 제품을 만드는 더 좋은 방법은 중간 단계를 구축하여 항상 사용할 수 있는 무언가를 확보하는 것입니다.” – Nikhil Swaminathan
속성 기반 테스트
Kiro의 가장 혁신적인 기능 중 하나는 속성 기반 테스트의 자동 생성입니다. 전통적인 단위 테스트가 제한된 입력만을 다루는 것과 달리, 속성 기반 테스트(예: fast‑check와 같은 프레임워크 사용)는 다양한 값 범위를 퍼징하여 코드가 올바르게 동작한다는 보다 강력한 증거를 제공합니다.
EARS 형식은 이러한 기능을 가능하게 합니다. 요구사항이 논리적 문장으로 표현되기 때문에 Kiro는 속성을 추출하고, 모든 실행에서 해당 속성이 유지되는지를 검증하는 테스트를 생성할 수 있습니다.
Erik은 체스 애플리케이션을 예시로 들어, 무작위 입력으로 100회 이상 실행되는 테스트를 보여주며 움직임이 올바르게 검증되는지 확인했습니다.
“이러한 속성 기반 테스트를 추가하면 코드 출력의 품질이 크게 향상되고, 버그가 줄어드는 경우가 많습니다.” – Erik Hanchett
Hooks: 라이프사이클 자동화
Kiro는 hooks—자동화된 프로세스를 트리거하는 라이프사이클 이벤트—를 도입합니다. Hooks는 파일 저장, 파일 생성 등과 같은 이벤트에서 실행되도록 구성할 수 있으며(추가 이벤트는 곧 제공될 예정입니다).
사용 사례 예시
- 문서 업데이트 – 파일이 변경될 때 자동으로 문서를 업데이트합니다.
- 스타일 및 톤 검사 – 문서에 대해 맞춤법, 톤, 스타일 검사를 실행합니다.
- 컴포넌트 검증 – React 컴포넌트가 단일 책임 원칙을 따르는지 확인합니다.
- 현지화 – 콘텐츠가 변경될 때 번역을 자동으로 생성합니다.
“프로세스 없이 많은 코드를 생성하는 대신, 우리는 품질 검사를 개발 라이프사이클에 직접 삽입합니다.” – Nikhil Swaminathan
Summary
Spec‑driven development with Kiro bridges the gap between rapid AI‑assisted coding and disciplined software engineering. By structuring requirements (EARS), generating design artifacts, managing tasks, and automating testing and documentation, teams can:
- Move quickly to a working MVP
- Maintain clear, up‑to‑date documentation
- Reduce bugs through property‑based testing
- Enforce quality gates via hooks
The result is a more predictable, transparent, and high‑quality development process—without sacrificing the speed that AI coding assistants provide.
Beyond the Spec Workflow, Kiro Offers Additional Capabilities
Agent Steering
- rules files를 만들어 코딩 표준, 디자인 패턴, 혹은 아키텍처 제약을 지정합니다.
- Kiro는 기존 코드베이스에서 이러한 규칙을 자동으로 생성해, 새로운 기능을 구축할 때 일관성을 보장합니다.
MCP (Model Context Protocol) Servers
- 외부 도구와 데이터 소스를 통합합니다.
- AWS는 Bedrock과 같은 서비스용 MCP 서버를 다수 제공하며, 포괄적인 문서 서버를 잡아‑전체 역할로 제공합니다.
- Kiro는 최근 MCP 서버에 원‑클릭 설치 기능을 추가했습니다.
Structured Workflows Beat Vibe Coding for Complex Projects
- Vibe coding은 빠른 프로토타입에 적합하지만, spec‑driven development는 프로덕션 애플리케이션에 필요한 문서화, 감사 추적, 명확성을 제공합니다.
Planning Upfront Improves AI Output
- 코드를 생성하기 전에 요구사항과 설계를 정교하게 다듬으면 AI 모델이 집중하여 더 좋은 결과를 만들어냅니다.
Iterate at Every Phase
- 초기 결정에 얽매이지 않습니다.
- 요구사항을 다듬고, 설계를 업데이트하고, 작업 순서를 재조정하며, 워크플로 전반에 걸쳐 진행 상황을 체크포인트합니다.
Property‑Based Testing Raises Quality
- 자동으로 생성된 프로퍼티 테스트는 전통적인 단위 테스트만으로는 제공하기 어려운, 코드가 요구사항을 만족한다는 강력한 보장을 제공합니다.
Automation Through Hooks
- quality gates를 설정해 자동으로 실행되게 함으로써 문제가 되기 전에 이슈를 포착합니다.
Developers Stay in Control
- Nikhil이 강조했듯이, 개발자는 AI 에이전트를 조종하고 코드에 대한 책임을 집니다.
- Spec‑driven development는 그 조종을 더욱 효과적으로 만들어 줍니다.
Source: …
About This Post
이 포스트는 DEV Track Spotlight 시리즈의 일환으로, AWS re:Invent 2025 Developer Community (DEV) 트랙에서 진행된 뛰어난 세션들을 조명합니다.
DEV Track Overview
- 60개의 고유 세션이 93명의 연사에 의해 진행되었습니다. 연사에는 AWS 커뮤니티의 AWS Heroes, AWS Community Builders, AWS User Group Leaders와 AWS 및 Amazon의 연사들이 포함됩니다.
- 다루어진 주제는 최첨단 영역을 포함합니다:
| 카테고리 | 주요 내용 |
|---|---|
| 🤖 GenAI & Agentic AI | 멀티‑에이전트 시스템, Strands Agents SDK, Amazon Bedrock |
| 🛠️ Developer Tools | Kiro, Kiro CLI, Amazon Q Developer, AI‑구동 개발 |
| 🔒 Security | AI 에이전트 보안, 컨테이너 보안, 자동화된 복구 |
| 🏗️ Infrastructure | 서버리스, 컨테이너, 엣지 컴퓨팅, 가시성 |
| ⚡ Modernization | 레거시 앱 전환, CI/CD, 기능 플래그 |
| 📊 Data | Amazon Aurora DSQL, 실시간 처리, 벡터 데이터베이스 |
이 시리즈의 각 포스트는 하나의 세션을 깊이 있게 다루며, 핵심 인사이트, 실용적인 시사점, 전체 녹화본 링크를 제공합니다. re:Invent에 직접 참석했든 원격으로 따라잡았든, 이 세션들은 실제 코드, 실제 데모, 실제 학습을 공유하는 개발자 커뮤니티의 최고를 보여줍니다.
Follow along as we spotlight these amazing sessions and celebrate the speakers who made the DEV track what it was! (위 문장은 원문 그대로 유지)