요즘 수많은 AI가 쏟아져나오고 있는 시대에 Amazon에서 만든 AI인 kiro를 사용해본 후기를 작성해보려고 하는데요,
아무래도 chatGPT, claude, Gemini보단 비교적 덜 익숙한 이름일 것 같습니다.
저는 AWS에서 진행하는 교육에 참여하여 kiro를 활용한 AI-DLC 기반 개발을 통해 주어진 요구사항에 맞는 프로그램을 구현해보았습니다.
이 과정 속에서 들었던 생각들을 기반으로 후기를 작성해보려 합니다.
🔎 AI- DLC란?
우선 AI-DLC에 대해 짧게 설명을 하고 넘어가자면!
AI-DLC는 AI-Driven Development Lifecycle의 약자로, AI를 개발 프로세스 전반에 통합한 새로운 개발 방식입니다.
AI가 요구사항 분석, 설계, 코드, 테스트 생성까지 주도적으로 수행하고,
인간은 중요한 의사결정과 검증을 담당하며 협업하는 구조로 속도와 품질을 동시에 높이는 것이 핵심 목표입니다.
즉, “AI가 실행을 주도하고, 인간이 검증하는 개발 패러다임” 이라고 볼 수 있습니다.
🤓 Kiro AI는 어떤 AI인데?

AWS에서는 "개발자가 AI 에이전트와 함께 작업하는 간소화된 개발자 경험을 통해 아이디어에서 직접 제품까지 개발할 수 있도록 지원하는 AI IDE" 라고 설명을 하고 있는데요,
다른 AI와의 차별점이라고 본다면 Kiro는 `spec` 과 `vibe`라는 기능을 따로 제공합니다. 바이브 모드는 코드를 짜는 것에 좀 더 집중한 모드이고, 스펙 모드는 코딩 시작 전 구현하려는 프로젝트를 요구사항부터 함께 작성해가며 스펙 주도 개발을 진행할 수 있게 도와줍니다.
아무래도 요즘 AI를 사용하며 '요구사항을 AI에게 구체적으로 전달하는 것이 가장 중요하다' 라는 이야기가 강조되고 있는 와중에 활용하기 좋은 포인트이지 않을까 싶습니다.
뒤에 이야기가 나오겠지만 kiro를 사용하면서 놀랐던 부분이기도 했습니다. 스펙 주도 개발을 기반으로 만들어졌다는 게 이런 거구나? 싶었습니다. 그만큼 spec 모드를 잘 만들었다는 생각이 들었습니다.
Kiro에 대해 더 자세한 정보가 궁금한 분들은 aws 블로그를 참고해보시면 좋을 것 같습니다!
https://aws.amazon.com/ko/blogs/korea/introducing-kiro/
Kiro: 프로토타입에서 프로덕션 레벨까지 지원하는 스펙 기반 Agentic IDE 출시 | Amazon Web Services
이글은 Kiro Blog 채널에 게제된 “Introducing Kiro – A new agentic IDE that work together together from prototype to production” 한국어 번역 및 편집본입니다. 혹시 이런 경험을 해 본 적이 있으신가요? 많은 프롬프
aws.amazon.com
✨ Kiro와 함께 프로젝트 만들기
저는 aws에서 제공해준 기본적인 주제와 요구사항이 갖춰진 상태인 md 파일들을 받아서 프로젝트를 시작했습니다.
4명이 한팀을 이뤄 하나의 프로젝트를 만들기로 하였고, 저희 팀은 프론트엔드 + 서버 구조로 개발하기로 하였습니다.
제공해준 기본적인 요구사항을 kiro가 파악하는 것부터 시작해서 추가 요구사항을 작성하고, 개발로 이어지는 플로우를 진행했는데요,
진행하는 워크플로는 크게 3단계로 나뉘었습니다.
- Inception (착수)
- 팀원들과 함께 모여 요구사항을 확인하고, 추가 요구사항이 있으면 구체적으로 작성합니다.
- Construction (구축)
- 각자 역할을 맡아 병렬 개발을 진행하며, 각자 개발한 것들을 다시 통합합니다.
- Operations (운영)
- 개발한 산출물을 확인하며 함께 검증해봅니다.
1️⃣ Inception 단계
가장 첫 단계인 Inception 단계에서는 팀원들과 함께 모여 기본적인 요구사항을 kiro에게 학습시키고, 추가하고 싶은 기능들을 작성하였습니다.
이 과정은 단순히 요구사항을 나열하는 것이 아니라 AI와 함께 요구사항을 구체화해 나가는 협업 과정에 가까웠습니다.
이 과정에서 놀랐던 점은 어떤 요구사항을 넣고싶다고 이야기 했을 때 kiro가 요구사항을 단순히 받아들이고 코드를 생성하는 것이 아니라 오히려 먼저 질문을 던진다는 점이었습니다.
예를 들어, “이런 기능을 만들고 싶다”고 입력하면 Kiro는 곧바로 구현을 시작하는 것이 아니라,
“이 기능을 구현하려면 다음과 같은 선택지가 필요한데, 어떤 방향으로 결정할 것인가?”
와 같은 형태로 되물었습니다.
실제로 음식 주문 기능을 예로 들었을 때도 마찬가지였습니다.
단순히 “주문 기능을 만든다”는 수준에서 끝나는 것이 아니라, 주문 상태 흐름에 대해서도 명확한 선택을 요구했습니다.
- A. 대기중 → 준비중 → 완료 (3단계)
- B. 대기중 → 준비중 → 완료 → 수령 완료 (4단계)
이처럼 Kiro는 개발자가 놓치기 쉬운 세부 정책까지 먼저 끌어올려 질문하는 방식으로 요구사항을 더욱 명확하게 만들어주었습니다.
이러한 흐름은 설계 단계에서도 이어졌는데요,
Kiro는 다음과 같은 요소들에 대해 개발자가 반드시 결정해야 할 사항들을 질문 형태로 제시했습니다.
- 이미지 파일을 서버에 어떻게 저장할 것인지
- 서버 언어는 무엇을 사용할 것인지
- 데이터베이스는 어떤 구조로 구성할 것인지
단순한 가이드 수준이 아니라 실제 설계에 필요한 의사결정 포인트를 빠짐없이 짚어주는 느낌이었습니다.
그동안 설계의 중요성에 대해서는 많이 들어왔지만, 실제로는 경험이나 시간 부족으로 인해 세부적인 부분까지 깊게 고민하지 못하는 경우도 많았는데요.
Kiro를 활용하면서 설계를 잘하도록 도와주는 것이 아니라, 설계를 하지 않을 수 없게 만든다고 느꼈습니다.
AI가 먼저 질문을 던지고 선택지를 제시하기 때문에, 개발자는 다양한 방향성을 비교하고 더 나은 결정을 내릴 수밖에 없는 구조였습니다.
물론 개발자의 역할은 어떤 선택이 더 나은 선택지인지 판별하는 역할이겠죠?
2️⃣ Construction 단계
Inception 단계에서 요구사항과 아키텍처, 디자인 구조까지 정리한 이후, Construction 단계에서는 본격적으로 Kiro AI와 함께 실제 개발을 진행했습니다.
이번 프로젝트는 총 4명의 팀원이 참여했으며, 각각 다음과 같은 역할로 나누어 진행되었습니다.
- 개발자 (Developer)
- DevOps
- 기획자
- PO(Product Owner)
저는 이 중 개발자 역할을 맡아, Kiro와 함께 실제 구현을 담당하게 되었습니다.
저희 팀은 개발 방식을 TDD(Test-Driven Development)로 가져가기로 결정하였습니다.
이에 따라 Kiro는 개발을 시작하기에 앞서, 정의된 요구사항을 기반으로 테스트 코드를 먼저 생성했습니다.
테스트 코드를 생성한 이후엔 아래 과정을 반복하였습니다.
- 생성된 테스트 코드를 기반으로 자동 테스트 수행
- 테스트에 실패한 코드에 대해 스스로 수정
- 모든 테스트를 통과할 때까지 반복 수행
이 과정을 Kiro가 스스로 반복하며, 테스트 → 수정 → 검증의 사이클을 자동으로 수행했습니다.
테스트가 완료된 이후에는 각 기능에 대해 프론트엔드와 백엔드 개발을 진행했습니다.
저는 주로 Android 개발에 대한 경험만 있고, 프론트엔드 및 서버 개발은 학부 시절 간단히 경험한 수준에 가까웠습니다.
그렇기에 이번 개발에서는 Kiro에 대한 신뢰를 바탕으로 구현을 맡기는 방식으로 진행했습니다.
Kiro는 기능을 구현할 때마다 다음과 같은 방식으로 상호작용했습니다.
- 기능 구현 전, 개발 진행 여부에 대한 의사결정 요청
- 승인 후 코드 자동 생성 및 반영
저는 이 과정에서 주요 의사결정을 담당하고, 실제 구현은 Kiro가 수행하는 구조로 협업하게 되었습니다.
이 과정을 반복하여 개발이 완료된 후 산출물을 확인했을 때, 다음과 같은 결과가 만들어져 있었습니다.
- 프론트엔드 UI
- 백엔드 API
- 데이터베이스 구조
서비스는 전반적으로 End-to-End로 구현된 상태였습니다.
프론트엔드와 백엔드에 대한 깊은 경험이 없는 상황에서도 AI와의 협업을 통해 전체 서비스를 구현할 수 있었다는 점이 신기하기도 하고, 단순히 신기함을 넘어서
“내가 정말 이 전체를 개발한 것이 맞을까?”
라는 생각이 들 정도로 기존 개발 경험의 범위를 넘어서는 결과를 만들어낼 수 있었습니다.
다만, 실제 서버를 구동하고 프론트엔드와의 상호작용을 확인하기 위해서는 직접 Docker 기반의 실행 환경 구성이 필요했습니다.
이에 따라 개발 단계에서는 코드 구현에 집중하고, 구현된 코드를 Git에 반영하면 DevOps 담당자가 이를 서버 환경에 배포하여 실제 동작을 검증하는 방식으로 역할을 분리하여 협업을 진행했습니다.
3️⃣ Operations 단계
이후 DevOps 담당자가 제가 구현한 코드를 기반으로 로컬 서버 환경을 구성하고 실제 서비스를 실행해보았습니다.
그 결과, 일부 기능에서 정상적으로 동작하지 않는 부분도 있었지만, 대부분의 기능은 초기 요구사항에 맞게 동작하는 것을 확인할 수 있었다.
실행 환경에서의 검증 이후에는 직접 QA를 진행하며 다음과 같은 작업을 수행했습니다.
- 누락된 기능 보완
- UI/UX 개선 및 디자인 디테일 수정
이 과정 역시 Kiro와 함께 진행되었으며, 반복적인 수정 작업을 빠르게 수행할 수 있었습니다.
하지만 이 과정에서 AI의 한계도 분명히 드러나기도 했습니다.
일부 기능에서 오류가 발생했을 때, Kiro가 여러 차례 수정 시도를 했음에도 불구하고 문제의 원인을 정확히 짚어내지 못하는 경우가 존재했습니다.
이러한 상황에서는 단순히 AI에게 맡기는 것만으로는 해결이 어려웠습니다.
결국, 어떤 부분이 문제인지 직접 분석하고 의심되는 클래스나 로직을 좁혀가며, 보다 구체적은 방향을 제시해야 문제가 해결되기 시작했습니다.
이 경험을 통해 한 가지 인상 깊었던 점은, 개발자의 역할에 대한 인식이 바뀌었다는 것입니다.
단순히 코드를 작성하는 것을 넘어, 문제를 정확히 정의하고, 올바른 방향으로 해결을 이끄는 것
이것이 개발자의 핵심 역할이라는 생각이 들었습니다.
AI는 정말 강력하고 유용한 도구이지만, 그 도구를 제대로 활용하기 위해서는 결국 기술에 대한 깊은 이해를 바탕으로 한 의사결정 능력이 필요한 것 같습니다.
QA 및 개선 단계는 단순한 마무리 작업이 아니라, AI와 개발자의 역할이 가장 명확하게 구분되는 구간이기도 했던 것 같습니다.
AI가 해결하지 못하는 문제를 정의하고 방향을 제시하는 것, 그 과정이야말로 개발자의 진짜 가치라는 점이라는 생각이 들었습니다.
☕️ 전반적인 후기
이번 경험을 통해 가장 인상 깊었던 점은 프론트엔드와 서버 개발 경험이 거의 없는 상태에서도 하나의 서비스 수준의 산출물을 만들어낼 수 있었다는 점이었습니다.
특히 Kiro를 활용한 개발 과정에서는 요구사항을 기반으로 설계와 구현이 이어지면서 스펙 주도 개발이 실제로 어떻게 이루어지는지 체감할 수 있었습니다.
코드 한 줄을 직접 작성하지 않고도 AI와의 협업만으로 A부터 Z까지 개발을 진행해보며 기존 개발 방식과는 다른 새로운 경험을 할 수 있었습니다.
다만, 모든 과정이 완전히 자동화되는 것은 아니었습니다.
예를 들어 Docker 환경 구성을 직접 진행하지 않았던 것처럼, 실제 실행 환경을 구성하는 부분에서는 여전히 개발자의 역할이 필요했습니다.
또한 Kiro를 효과적으로 활용하기 위해서는 개발 전반에 대한 기본적인 이해가 반드시 필요하다는 점도 느낄 수 있었습니다.
물론 이건 Kiro 뿐만 아니라 모든 AI에 동일하게 적용되는 점이라고 생각합니다.
🤔 더불어 Kiro에 특정하지 않고 이번 경험을 통한 AI에 대한 생각도 같이 남겨보자면,
AI를 활용해 A부터 Z까지 개발을 진행해보면서 단순히 생산성이 높아진 것을 넘어 개발이라는 행위 자체가 변화하고 있다는 느낌을 받았습니다.
점점 AI가 발전하는 환경 속에서 이제 엔지니어의 역할은 단순한 ‘개발자’를 넘어,
어떤 기술을 선택할 것인지, 어떤 방식이 현재 상황에 적합한지, AI의 결과가 올바른지 판단하는 것에 대한 의사결정을 내리는 역할로 변화하고 있다고 느꼈습니다.
요즘 많은 사람들이 “코드를 몰라도 개발할 수 있다”는 이야기를 하고 있는데요,
직접 경험해보니 이는 일부만 맞는 이야기였다는 생각도 들었습니다.
빠르게 결과물을 만드는 것은 가능하지만, 그 결과가 좋은지 판단하는 것은 또 다른 문제였습니다.
AI를 제대로 활용하기 위해서는 어떤 결과가 좋은지 판별할 수 있는 능력, 잘못된 방향을 수정할 수 있는 이해도, 그리고 기술에 대한 전반적인 지식이 반드시 필요하다고 느꼈습니다.
당연한 이야기겠지만, 결국 AI를 잘 쓰기 위해서도 인간은 계속 공부를 해야 한다고 생각합니다.
AI 시대에서 중요한 것은 단순한 구현 능력이 아니라, 판단력과 기술에 대한 이해를 기반으로 한 의사결정 능력이다!
라는 말로 글을 마무리하겠습니다.. ㅎㅎ