
블로그를 이전 되었습니다. 앞으로 신규 글은 https://blog.kanapp.net/kr/ 로 오셔서 보시면 됩니다.
해당 글은 동일하게 이전되어 있습니다.
저는 현재 Cursor를 메인 IDE로 사용하고 있습니다. Ctrl+K와 Composer 기능은 혁명적이었습니다. 소위 말하는 '바이브 코딩(Vibe Coding)'—떠오르는 대로 말하고, AI가 즉시 코드로 뱉어내는 경험—은 개발 속도를 비약적으로 높여주었습니다.
하지만 22년 차 개발자로서 늘 느끼는 찜찜함이 있었습니다.
"빠르긴 한데... 프로젝트가 커지면 코드가 또 꼬일텐데.. 우선 백업부터 하자.."
Cursor로 신나게 코딩하다 보면, 어느 순간 아키텍처는 무너지고 거대한 '스파게티 코드'가 남곤 했습니다.
그렇다고 예전처럼 AI 어시스턴트를 사용하지 않고 개발한다는 것은 너무 불편하고.. 답답함과 고민을 항상 하고 있습니다.
그러던 중 AWS가 만든 Kiro IDE를 접하게 되었고, 해커톤에 참가하며 'DevOps Nightmare'라는 프로젝트를 진행했습니다.
결론부터 말하자면, Kiro는 코딩 툴이 아니라 'AI 아키텍트'였습니다. 오늘 그 차이를 이야기해보려 합니다.

가장 큰 차이는 엔터(Enter)를 친 직후의 행동입니다.
Cursor에게 *"AWS 상태에 따라 배경이 바뀌는 대시보드 만들어줘"*라고 하면, 즉시 App.tsx를 건드리고 코드를 쏟아냅니다.
빠릅니다. 하지만 전역 상태 관리는? 에러 처리는? 그건 나중에 에러가 나면 그때 고칩니다.
속도 중심의 '패치워크(Patchwork)' 방식입니다.
MCP나 비싼 모델을 사용하면 이 현상은 어느정도 해결이 되기는 한데, 코드 양이 많아지면 뻘짓 하는 것은 다들 아실것으로 압니다.
Kiro에게 똑같은 말을 하면, 코드를 짜지 않습니다. 대신 .kiro 폴더에 문서를 만듭니다.

이것은 'Spec-Driven Development(스펙 주도 개발)'입니다. 바이브 코딩의 한계였던 '설계의 부재'를 AI가 강제로 채워주는 경험이었습니다. 물론 kiro에도 Vibe 방식도 있어서 선택해서 원하는 방식으로 개발이 가능합니다.

좀 더 부연설명하면은 spec 모드로 사용하면 소위 말하는 기획을 해주고, 그 기획 안에서 코드를 구성합니다.여기까지 보면 비슷해 보입니다. 기존 다른 툴들과.. 그런데, kiro를 이 구성된 스펙 범위를 넣어서지 않았습니다.그리고, 요구사항을 충실히 이행했습니다. 여기에 전 큰 차이가 있다고 생각합니다.
다른 툴들에서 작업하다보면 초반에는 잘 되다가 소위 무너지는 지점이 발생합니다. max 플랜을 사용해도 방당한 코드량의 토큰 앞에서는 여지 없이 많이 무너졌습니다. (전 그리 생각합니다.)
하지만 kiro는 spec을 충실히 따르면서 구성이 들어가니, 이 무너지는 지점에서 설계가 잡아주는 느낌을 받았습니다.
이번에 대형 프로젝트를 진행한 것이 아니기는 하지만, 큰 실수 없이 제일 편하게 작업한거 같습니다.
물론 cursor + max + mcp를 이용하면 비슷한 결과물은 낼수 있을거라 생각합니다. 그런데, 차이는 편하게 구성했다는 겁니다.
즉, kiro가 겁내 좋은 툴이라는 것이 아니고, 이전의 다른 툴과는 다르게 좀 더 좋아져서 코드를 엉망으로 만들지 않는 겁니다.어찌보면 별거 아닌거 같은데, 제가 볼때는 큰 발전이라고 봅니다. 이제사 힘 좋은 말을 제대로 부린다는 느낌이랄까요..

이번 해커톤에서 만든 프로젝트는 "서버 상태가 나빠지면 화면이 피투성이(Horror Theme)로 변하는 대시보드"였습니다.
겉보기엔 단순하지만, 내부 로직은 복잡했습니다.
아마 ThemeContext 없이 컴포넌트마다 if (isHorror) 문을 남발했을 겁니다. 나중에 "타이머 기능(Pomodoro) 추가해줘"라고 하면 기존 로직과 엉켜서 시계가 멈추거나 배경이 날아갔을 것으로 예상합니다.
제가 *"평화 모드와 공포 모드를 완벽하게 분리해줘"*라고 프롬프트를 입력하자, Kiro는 State Machine(상태 머신) 설계를 먼저 내놓았습니다.

놀라웠던 점은 확장성입니다. 프로젝트 막바지에 "포모도로(Pomodoro)" 기능을 추가해달라고 했을 때, Kiro는 기존 AWS 모니터링 코드를 건드리지 않고 usePomodoro 훅을 따로 파서 깔끔하게 붙였습니다. 이미 '구조'가 잡혀 있었기 때문입니다.
Kiro의 또 다른 강점은 'Agent Hooks'입니다. Cursor에서는 API 연동 코드를 짜면 에러 처리는 개발자가 챙겨야 했습니다.
하지만 Kiro는 제가 시키지 않아도 방어적 코딩(Defensive Coding)을 수행했습니다.
사례: 중단 없는 서비스를 위한 usePolling의 방어적 설계 Kiro는 단순히 API를 호출하는 코드를 짜준 것이 아니라, '어떤 API든 실패할 수 있다'는 전제하에 범용 훅(usePolling)을 설계했습니다.
내부적으로 try-catch를 사용하여 에러를 확실하게 포착하고, 앱을 멈추게 하는 대신 onError 콜백을 통해 우아하게 처리하더군요. 그외도 알아서 공용으로 쓰거나 hook이 필요하면 알아서 생성을 하더군요.
catch (err) {
const error = err instanceof Error ? err : new Error('Unknown error occurred');
if (isMountedRef.current) {
setError(error);
setLoading(false);
if (onError) {
onError(error); // 커스텀 에러 핸들러 실행
} else {
console.error('Polling error:', error); // 기본 에러 로깅
}
}
}
덕분에 데모 영상 녹화 중 API 이슈가 있었음에도 앱은 멈추지 않았습니다. 시니어 개발자가 주니어에게 "예외 처리 좀 꼼꼼히 해"라고 시킨 결과를 AI가 알아서 해온 느낌이었습니다.
Kiro를 쓰면서 가장 소름 돋았던 순간은 '기능 구현'이 아니라 '테스트(Test)' 단계였습니다.
보통의 AI 코딩 툴(Cursor 등)은 코드를 짜주긴 하지만, 테스트가 실패하면 그 에러 로그를 보고 개발자가 다시 프롬프트를 입력하거나 직접 수정해야 했습니다. 즉, "뒷수습은 인간의 몫" 이었습니다.
하지만 Kiro는 달랐습니다.
StorageService 관련 테스트를 돌리던 중, Invalid todo item format이라는 치명적인 에러가 터졌습니다. 보통이라면 제가 터미널 로그를 긁어서 "이거 왜 에러 나? 고쳐줘"라고 물어봐야 했을 겁니다.
하지만 Kiro는 제가 시키기도 전에 먼저 반응했습니다.

이것은 단순한 자동완성이 아닙니다. 'Self-Healing(자가 치유)' 가능한 코드입니다. 마치 노련한 동료 개발자가 "아, 제가 테스트 코드에 필드 하나 빼먹었네요. 지금 바로 고쳐서 커밋할게요."라고 말하는 듯한 기분이었습니다.
이 경험을 통해 저는 Kiro가 단순한 '타이핑 비서'가 아니라, '내 프로젝트를 이해하고 책임지는 에이전트'임을 확신하게 되었습니다.
물론 Kiro가 만능은 아닙니다. 초기 세팅 과정이 Cursor보다 길고, 작은 수정 사항에도 Spec을 업데이트하려는 경향이 있어 답답할 때도 있습니다.
하지만 22년 차 개발자의 시선에서 볼 때, '지속 가능한 소프트웨어'를 만들기 위해서는 Kiro의 방식이 옳습니다.
좀 더 간단히 설명하면 Cursor는 제약이 없는 AI 코딩 에디터인거 같고, Kiro는 설계된 구조 안에서 AI 코딩을 해 준다고 보면 될거 같습니다.
물론 Kiro가 만능은 아니었습니다. Cursor의 빠르고 직관적인 경험에 익숙해진 상태에서 Kiro를 쓰면서 느낀 명확한 답답함(Pain Points)도 있었습니다.
Spec 모드로 사용하게 되면, 간단한 수정도 '공사'가 됩니다. (High Overhead)
그래서 Cursor에서는 "이 버튼 색깔 빨강으로 바꿔줘" 하면 끝입니다. 1초면 됩니다. 하지만 Kiro의 Spec 모드에서는 이 사소한 수정조차 'Task'로 인식되어 처리를 하게 됩니다. (이건 예를 든겁니다.)
그래서 Kiro에서는 Spec모드 말고, Cursor처럼 사용할 수 있게 Vibe 모드를 따로 둔거 같습니다.
그래서 빠른 프로토타이핑, 간단한 수정 (CSS, 오타), 혼자 작업하는 작은 프로젝트에서는 Vibe로 작업을 하고,
복잡한 기능 개발 (인증, 결제, 대시보드 등), 팀 협업 (문서 공유 필요), 장기 유지보수가 필요한 프로젝트, 코드 리뷰가 필요한 상황에서는 Spec 으로 개발하는게 휠씬 유리한 것으로 보입니다.
마지막으로 github에 문서 문서는 kiro에서 알아서 코드에 맞게 수정을 다 한 준것입니다.
Cursor에서 MCP를 붙여서 사용해 보았지만, 완벽하게 문서 작업해 준 것은 kiro로 처음인거 같네요.
Kiro와 MCP까지 붙이면 기능이 얼마나 더 막강해질지 모르겠네요..
현재 Kiro의 사용하는 모델은 Claude 모델만 제공되고 있습니다.
이번 해커톤을 통해 저는 코드를 '작성'하는 것이 아니라, AI에게 '의도(Intent)'를 설명하고 '설계(Spec)'를 검증하는 역할을 수행했습니다.
Cursor가 '슈퍼 코딩 비서'라면, Kiro는 '든든한 파트너 아키텍트'입니다. 단순한 토이 프로젝트를 넘어, 유지보수가 필요한 실무 레벨의 프로덕트를 만든다면 Kiro의 Spec-Driven 방식은 강력한 무기가 될 것입니다.
저의 짧은 사용 소감으로는 cursor를 대체할 강력한 IDE가 되지 않을까 싶습니다. 든든한 Amazon이 있고 해서 좀 더 시간이 지나서 다듬어지면 정말 강력해 질거라 생각합니다. 근데, 생각보다 홍보나 관심이 적은거 같습니다.
좀 더 부연 설명을 하면, 저도 cursor와 비슷하지 않겠어? 라고 사용해 보았으나.. 생각보다 Kiro를 설계를 잘 해 주어서 별도로 요청하거나 추가된 명령어나 관리를 하지 않아도 된다는 것이 많이 편했습니다.
실행후 알아서 test 하거나 문서까지 관리해 주면서 업데이트 되었나 확인하거나 체크할 필요가 없다는 것이 제일 편했던거 같습니다.(cursor나 cloude code 사용시에는 누락되는 경우가 많아서 자주 체크해야 했습니다. - 잘 되다가 한번 안하기 시작하면 어느 순간부터 누락된 줄도 모르다가 나중에 알게 되는 경우가 제법 많았습니다.)

현재 저는 KIRO PRO+ 를 사용중이나, 가입하면 무료도 500 크레딧을 주는데, 일주일동안 크레딧 생각하지 않고 무식하게 돌렸는데, 230 크레딧을 사용했네요.
그렇게 만들어진 Momentum 입니다. 기본적으로 Hacker News RSS + Pomodoro + Todo List 를 제공합니다.
AWS api를 연동하면 AWS Monitoring + Pomodoro + Todo List 로 사용이 가능해 집니다.(현재 mock 데이타 돌아게 구성되어 있어요. 이 부분은 약간의 수정이 필요할수 있습니다.)



아래는 해당 프로젝트의 코드를 github에 모두 올려두었으니, 한번 코드와 .md파일을 참조해 보세요.
해당 글이 도움이 되셨다가 github 스타 좀 꾸욱 한번 눌러주시면 감사하겠습니다. ^^;
[프로젝트 링크]
| openclaw에서 오케스트레이션(Orchestration) 구현해 보기 (0) | 2026.03.23 |
|---|---|
| 7일동안 1억 토큰으로 바이브 코딩해 만든 Cloud 관제 시스템(Raindrop+Vultr) (2) | 2026.01.11 |
| 안드레이 카르파시 강연 : AI 시대의 소프트웨어 (Andrej Karpathy: Software Is Changing) (4) | 2025.06.23 |
| General AI Agent : Manus AI (개발부터 배포까지 한방에 처리) (6) | 2025.06.16 |
| AI 브라우저: Fellou AI 차세대 브라우저 어시스턴트 완전 분석 (0) | 2025.05.11 |