Mirmer AI 구축: Kiro가 단독 개발을 AI 기반 협업으로 전환한 방법
Source: Dev.to
400년 된 동료 검토를 부활시키는 도전
Mirmer AI를 만들기 위해 나는 수세기 전부터 이어져 온 동료 검토 과정을 부활시키고, 이를 AI 모델을 이용해 기계 속도로 실행하고 싶었다. 개념은 간단했지만 실행은 복잡했다:
- Stage 1 – 여러 AI 모델이 독립적으로 응답
- Stage 2 – 모델들이 서로의 응답을 익명으로 동료 검토
- Stage 3 – 의장 모델이 합의를 종합
나는 혼자 개발자였기 때문에 다음과 같은 스택을 직접 조합해야 했다:
- 비동기 오케스트레이션이 가능한 FastAPI 백엔드
- 실시간 스트리밍을 지원하는 React 프론트엔드
- 이중 모드 저장소를 갖춘 PostgreSQL 데이터베이스
- 동기/비동기 클라이언트를 제공하는 Python SDK
- 브라우저 기반 인증이 포함된 CLI 도구
- 결제 연동 (Razorpay)
- Firebase 인증
- Railway와 Vercel에 배포
보통 이 작업량은 2~3개월이 걸리지만, 나는 몇 주밖에 없었다.
Kiro의 등장

Kiro의 장점: 단순 코드 생성이 아닌 아키텍처 설계
대부분의 AI 코딩 어시스턴트는 개별 함수를 작성하도록 돕는다. Kiro는 전체 시스템을 설계하도록 도와주었다.
1. Steering Rules: 내 코드베이스를 Kiro에게 교육
나는 .kiro/steering/에 세 개의 스티어링 문서를 만들었다.
tech.md – 기술 스택 개요
Backend: FastAPI, Python 3.10+, uv package manager
Frontend: React 18, Vite, Tailwind CSS
Database: PostgreSQL (production), JSON (dev)
Key Pattern: Dual‑mode storage with factory pattern
Critical: Always use "uv run" not "python" directly
structure.md – 프로젝트 아키텍처
backend/
main.py # API routes
council.py # 3‑stage orchestration
storage.py # Factory pattern (auto‑selects backend)
storage_postgres.py # Production storage
storage_json.py # Dev storage
frontend/
src/components/ # React components
src/pages/ # Route pages
sdk/
mirmer/ # Python SDK package
product.md – 비즈니스 및 기능 근거
Core: 3‑stage council process (parallel queries → peer review → synthesis)
Business: Free (10/day), Pro (100/day), Enterprise (unlimited)
Key Feature: Real‑time streaming via SSE

Impact – 스티어링 규칙을 적용한 뒤, 모든 Kiro 대화는 올바른 규칙(예: uv run 사용, storage.py에서 import, 3‑stage 패턴 준수)으로 시작했으며, 이는 건축적 오류를 한 번에 제거했다.
2. Spec‑Driven Development: 아이디어에서 구현 계획까지
복잡한 기능을 위해 Kiro의 스펙 시스템을 사용했다. 아래는 Python SDK에 대한 워크플로우이다.
Phase 1 – Requirements (requirements.md)
“Kotlin SDK에 대한 스펙을 만들어줘”라고 요청했더니 다음을 생성했다:
- 수용 기준이 포함된 12개의 사용자 스토리
- 기술 용어 사전
- EARS 형식의 60개 이상 테스트 가능한 요구사항
예시 요구사항:
User Story: As a developer, I want to stream council updates in real‑time
Acceptance Criteria:
1. WHEN a developer calls the stream method THEN the system SHALL yield updates as each stage progresses
2. WHEN Stage 1 completes THEN the system SHALL yield an event containing all individual model responses
3. WHEN streaming encounters an error THEN the system SHALL yield an error event with details

Phase 2 – Design (design.md)
Kiro가 만든 내용:
- 데이터 흐름 다이어그램을 포함한 전체 아키텍처
- 메서드 시그니처가 정의된 컴포넌트 인터페이스
- 프로퍼티 기반 테스트를 위한 20개의 정확성 속성
- 오류 처리 전략
- 테스트 접근법(단위, 프로퍼티 기반, 통합)
정확성 속성 예시:
- “모든 API 요청에 대해
x-user-id헤더는 API 키를 포함해야 함” - “구독 결제 시 티어는
pro로 업데이트돼야 함” - “스트리밍 요청 시 이벤트는
stage1_start → stage1_complete → stage2_start …순서대로 도착해야 함”
이 속성들은 각각 100회 이상 반복되는 Hypothesis 프로퍼티 기반 테스트로 구현됐다.
Phase 3 – Tasks (tasks.md)
Kiro는 작업을 세분화된 티켓으로 나눴다:
- [ ] 1. Set up project structure and packaging
- [ ] 2. Implement core data models
- [ ] 2.1 Create Pydantic models for all data structures
- [ ]* 2.2 Write property test for response structure validation
- [ ] 3. Implement synchronous Client class
- [ ] 3.1 Create Client with initialization and configuration
- [ ]* 3.2 Write property test for API key security
*는 선택적 테스트 작업을 표시하며, 핵심 기능에 먼저 집중할 수 있게 해준다.

Result – SDK 스펙 덕분에 프로덕션 전에 세 가지 버그를 잡을 수 있었고, 작업 티켓 덕분에 3일짜리 기능을 1시간 단위로 나눠 진행했다. 보존된 스펙 파일 덕분에 몇 주 뒤에 작업을 재개해도 컨텍스트를 잃지 않았다.
3. Agent Hooks: 스스로 개선되는 코드베이스
나는 일상적인 개발 작업을 자동화하기 위해 여섯 개의 에이전트 훅을 정의했다.
API Function Generator – 백엔드 파일 수정 시 트리거
When I write a new API function, Kiro automatically generates:
- FastAPI route decorator
- Pydantic validation schema
- Error‑handling boilerplate
- Example request body
Auto‑Document Code – 코드 파일 편집 시 트리거
Kiro adds docstrings/JSDoc to every function automatically.
No more “I’ll document this later” – it happens in real‑time.
Auto‑Generate Tests – 함수 생성과 동시에 트리거
For each new function, Kiro creates:
- Unit test skeleton
- Property‑based test template (if a correctness property exists)
- Mock data fixtures
Dependency Updater – requirements.txt 변경 시 실행
Kiro checks for newer package versions, runs the test suite, and creates a pull request if all checks pass.
CI/CD Optimizer – 각 푸시 후 실행
Kiro analyses test coverage, suggests flaky‑test mitigations, and updates the GitHub Actions workflow accordingly.
Documentation Publisher – 릴리즈 태그 생성 시 실행
Kiro builds the MkDocs site, uploads it to the hosting provider, and posts a release note with changelog highlights.
이 훅들 덕분에 코드베이스는 스스로 유지보수되는 시스템이 되었으며, 수작업 부담이 크게 줄어들었다.
정리
- Steering rules는 AI 어시스턴트에게 지속적인 컨텍스트를 제공해 반복 설명을 없앤다.
- Spec‑driven development는 높은 수준의 아이디어와 구체적인 구현 사이의 간극을 메우며, 초기 단계에서 결함을 잡는다.
- Agent hooks는 반복 작업을 자동화해, 혼자서도 몇 주 안에 프로덕션 급 멀티‑LLM 플랫폼을 구축할 수 있게 해준다.