나는 kiro IDE를 사용해 지루한 스펙 일수를 시각화하는 Kiro Extension을 만들었습니다

발행: (2025년 12월 6일 오전 04:36 GMT+9)
10 min read
원문: Dev.to

Source: Dev.to

아이디어의 불꽃

상상해 보세요: 평범한 화요일. 저는 Kiro IDE를 사용해 프로젝트 사양을 관리하고 있습니다. tasks.md를 백 번째로 열면서 생각했죠…

“이 마크다운 파일들 너무 지루해. 만약… 무시무시하게 변한다면?” 🎃

그 한 마디와 Kiro AI의 힘이 결합돼 SpecterFlow가 탄생했습니다 — 지루한 사양 파일을 전기 테슬라 코일, 애니메이션 커서, 네온 빛 인터페이스가 있는 인터랙티브하고 무시무시한 테마 시각 경험으로 바꾸는 Kiro 확장입니다.

전체 코드의 80 %가 AI에 의해 단 3일 만에 작성되었습니다!

SpecterFlow란?

SpecterFlow는 .kiro/specs/ 마크다운 파일을 세 가지 테마 뷰로 살아나게 하는 Kiro 확장입니다:

🪦 묘지 (tasks.md)

칸반 보드가 묘지로 변합니다:

  • 돌 텍스처가 입힌 무덤 모양 카드
  • 모든 카드에 전기 테슬라 코일 스파크
  • 작업을 완료하면 유령 축하 효과
  • 카드를 드래그하면 에크트플라즘 트레일
  • 컬럼: 신선한 무덤 → 부활 중 → R.I.P.

📜 마법서 (requirements.md)

요구사항이 고대 주문서가 됩니다:

  • 양피지 텍스처와 신비로운 룬
  • 물결치는 텍스트 애니메이션 (6가지 스타일)
  • 분할 뷰: 사용자 스토리 ↔ 수용 기준
  • 펄싱 효과가 있는 네온 숫자 배지
  • 고대 서적 느낌을 주는 Crimson Text 폰트

🔮 영혼 보드 (design.md)

디자인 문서가 오우지아 보드가 됩니다:

  • 신비로운 네비게이션 사이드바
  • 빛나는 크리스탈 이모지
  • 트리 뷰의 전기 가지
  • 네온 버튼이 있는 부드러운 스크롤

AI‑구동 개발 여정

1일차 – 사양‑주도 개발

Kiro의 사양‑주도 워크플로우로 시작하며 물었습니다:

.kiro/specs 파일을 무시무시한 테마로 시각화하는 Kiro 확장을 만들고 싶어요.”

Kiro는 다음을 생성했습니다:

  • requirements.md – EARS 패턴과 수용 기준 포함
  • design.md – 아키텍처, 컴포넌트, 정확성 속성
  • tasks.md – 30개의 상세 구현 작업

그 뒤 초기 코드를 만들었습니다:

  • 확장 활성화 로직
  • 커스텀 에디터 프로바이더
  • 파일‑시스템 스캐너
  • 마크다운 파서(이벤트‑드리븐 아키텍처)
  • 기본 웹뷰 구조

1일차에 Kiro가 작성한 코드 라인: 약 800줄

2일차 – 바이브 코딩 매직

“바이브 코딩” 모드로 전환해 원하는 것을 설명했습니다:

Me: “전기 테슬라 코일 효과를 넣어 무시무시하게 만들어줘!”
Kiro: 테슬라 코일 스파크 애니메이션, 번개 SVG, 플라즈마 구, 전기 입자, 전압 아크를 포함한 500줄의 CSS를 생성.

Me: “물결치는 텍스트 애니메이션을 추가해!”
Kiro: 파동, 글리치 파동, 떠다니는 파동, 네온 파동, 레인보우 파동, 액체 파동 등 전체 애니메이션 시스템을 제작.

Me: “입자 트레일이 있는 커스텀 커서를 만들어!”
Kiro: 빛나는 커서, 입자 트레일, 클릭 폭발, GPU 가속 렌더링, 60 fps를 위한 스로틀링을 구현한 최적화된 JavaScript를 구축.

2일차에 Kiro가 작성한 코드 라인: 약 2,500줄

3일차 – 마무리 & 성능 최적화

최적화와 마무리에 집중했습니다:

Me: “커서가 느려. 최적화해줘!”
Kiro: 트레일 생성 스로틀링, 입자 수 감소, GPU 가속을 위한 will-change, left/top 대신 transform 사용, 패시브 이벤트 리스너와 이벤트 위임을 적용해 리팩터링.

Me: “폰트가 별로야. 더 좋은 걸로 바꿔!”
Kiro: 옵션을 분석하고 지능형 폰트 계층 구조를 생성 (헤더는 October Twilight, UI는 Jura, 마법서는 Crimson Text, 코드용은 Share Tech Mono).

3일차에 Kiro가 작성한 코드 라인: 약 900줄

숫자로 보는 성과

  • 3,500+줄의 CSS (애니메이션, 효과, 레이아웃)
  • 1,200+줄의 JavaScript (파서, 컴포넌트, 인터랙션)
  • 17+ 종류의 입자 효과 (스파크, 트레일, 폭발 등)
  • 6가지 밝은 네온 색상 (신중히 선택된 팔레트)
  • 5가지 폰트 패밀리 (지능적으로 선정)
  • 8개 에이전트 훅 (자동화 워크플로)
  • 9개 MCP 서버 (확장 기능)
  • 완전한 문서화 (가이드, README, 주석)

총합: 3일 만에 약 5,000줄의 프로덕션‑레디 코드!

비밀 소스: Kiro가 어떻게 했을까

1. 사양‑주도 개발

Kiro는 구조화된 개발에 강합니다. 먼저 포괄적인 사양을 만들면 명확한 로드맵이 생깁니다:

## Requirement 1: Graveyard Kanban Board

**User Story:** As a developer, I want to see my tasks as tombstones...

### Acceptance Criteria
1. WHEN a user opens `tasks.md` THEN the system SHALL display a kanban board
2. WHEN a task is dragged THEN the system SHALL show an ectoplasm trail
3. WHEN a task is completed THEN the system SHALL trigger ghost celebration

이 명확성 덕분에 Kiro는 요구사항에 정확히 부합하는 코드를 생성했습니다.

2. 바이브 코딩

창의적인 기능을 위해 바이브 코딩을 활용했습니다:

Me: "Make it feel like a haunted computer terminal from the 80s"
Kiro: *generates Share Tech Mono font, CRT effects, scanlines*

Me: "Add electric sparks like a Tesla coil"
Kiro: *creates complete particle system with physics*

Kiro는 바이브를 이해하고 코드를 구현했습니다.

3. 에이전트 훅

훅을 사용해 워크플로를 자동화했습니다:

{
  "name": "Compile on Save",
  "trigger": { "type": "onFileSave", "filePattern": "**/*.ts" },
  "action": { "type": "executeCommand", "command": "npm run compile" }
}

TypeScript 파일을 저장할 때마다 Kiro가 자동으로 컴파일했습니다.

4. 스티어링 문서

스티어링 문서는 Kiro의 코딩 스타일을 안내합니다:

# JavaScript Patterns
- Use classes instead of @typedef
- Prefer ternary over if‑else for assignments
- Use object lookups instead of switch statements
- Keep functions concise (single responsibility)

이 덕분에 일관되고 고품질의 코드가 유지되었습니다.

5. MCP 서버

확장된 기능을 위해 MCP 서버를 활성화했습니다:

  • vscode‑extension – Kiro 확장 API 검색
  • npm – 패키지 찾기 및 제안
  • fetch – 웹에서 문서 가져오기
  • typescript – 실시간 타입 검사

이들 덕분에 Kiro는 기본 지식을 넘어선 슈퍼파워를 얻었습니다.

가장 인상적인 코드 생성

전기 테슬라 코일 효과는 정말 놀라웠습니다. 제가 이렇게 말했죠:

“Add electric sparks like a Tesla coil”

Kiro는 다음과 같은 CSS를 만들어냈습니다:

@keyframes teslaCoil {
  0%, 100% {
    opacity: 0;
    transform: scale(0.8) translateY(0);
  }
  10% {
    opacity: 1;
    transform: scale(1) translateY(-5px);
  }
  20% {
    opacity: 0;
    transform: scale(0.9) translateY(-10px);
  }
  /* ... continues with perfect timing ... */
}

.electric-spark {
  position: absolute;
  width: 2px;
  height: 20px;
  background: linear-gradient(180deg, #00ffff 0%, #0080ff 50%, transparent 100%);
  box-shadow: 0 0 10px #00ffff, 0 0 20px #00ffff, 0 0 30px #0080ff;
  animation: teslaCoil 1.5s ease-in-out infinite;
}

또한 Kiro는 스파크를 생성하고 수명 주기를 관리하며 성능을 최적화하는 JavaScript도 한 문장으로 만들어냈습니다.

성능: 깜짝 승리

커서 지연을 언급했을 때 Kiro는:

  • 병목 현상(과도한 입자) 파악
  • 50 ms 간격 스로틀링 구현
  • 입자 수 감소 및 will-change로 GPU 가속 적용
  • left/top 대신 transform 기반 이동 전환
  • 패시브 이벤트 리스너와 이벤트 위임 추가

그 결과 부드러운 60 fps 경험을 얻었으며 눈에 띄는 지연이 사라졌습니다.

Back to Blog

관련 글

더 보기 »

AI 생성 코드의 품질 및 보안 위험

AI‑powered tools와 coding assistants는 여러 이유로 소프트웨어 개발자들 사이에서 인기를 얻고 널리 사용되고 있습니다. 이들은 속도뿐만 아니라…

모듈 모드

기본 구조 모듈 패턴은 IIFE와 클로저(Closure)의 특성을 이용해 “클래스” 개념을 모방하고, 공개(Public)와 비공개(Private) 멤버 및 메서드를 가집니다. 이것은 JavaScript에서 캡슐화(Encapsulation)를 구현하는 고전적인 방법입니다. 코드 예시: 하나의 카운터 모듈 javascript var CounterModule…

Supabase와 스키마 설계: 파티셔닝 및 정규화

Day 6 – Schema Design with Supabase PostgreSQL은 스키마를 지원하며, 스키마는 테이블을 그룹화하기 위한 네임스페이스 역할을 합니다. 일반적인 사용 사례에는: 멀티‑테넌시 – 별도의 sc...