AIDLC 프레임워크 — EKS 환경에서의 AI 주도 개발·운영 고도화
📅 작성일: 2026-02-12 | 수정일: 2026-02-14 | ⏱️ 읽는 시간: 약 39분
1. 개요
1.1 왜 AIDLC인가
전통적 소프트웨어 개발 라이프사이클(SDLC)은 사람 중심의 장기 반복 주기(주/월 단위)를 전제로 설계되었습니다. 데일리 스탠드업, 스프린트 리뷰, 회고 같은 리추얼은 이 긴 주기에 최적화된 것입니다. AI의 등장으로 이 전제가 무너집니다.
AI는 요구사항 분석, 태스크 분해, 코드 생성, 테스트까지 시간/일 단위로 수행합니다. 기존 SDLC에 AI를 끼워 넣는(Retrofit) 접근은 이 잠재력을 제한합니다 — 마치 자동차 시대에 더 빠른 마차를 만드는 것과 같습니다.
**AIDLC(AI-Driven Development Lifecycle)**는 AWS Labs가 제시한 방법론으로, AI를 **첫 원칙(First Principles)**에서 재구성하여 개발 라이프사이클의 핵심 협력자로 통합합니다.
전통적 SDLC AIDLC
━━━━━━━━━━━━━━ ━━━━━━━━━━━━━━━━━━━
사람이 계획하고 실행 AI가 제안하고, 사람이 검증
주/월 단위 반복 (Sprint) 시간/일 단위 반복 (Bolt)
설계 기법은 팀 선택 DDD/BDD/TDD를 방법론에 내장
역할 사일로 (FE/BE/DevOps) AI로 역할 경계 초월
수동 요구사항 분석 AI가 Intent를 Unit으로 분해
순차적 핸드오프 연속 흐름 + Loss Function 검증
1.2 AIOps 전략과의 연결
1. AIOps 전략 가이드에서 다룬 AWS 오픈소스 전략 → MCP 통합 → AI 도구 → Kiro 오케스트레이션은 AIDLC를 실현하는 기술 기반입니다. 2. 지능형 관찰성 스택에서 구축한 3-Pillar + AI 분석 레이어는 Operations 단계의 데이터 기반입니다. 이 문서는 그 기술·데이터 기반 위에서 개발과 운영을 체계적으로 고도화하는 방법론을 제시합니다.
[1] AIOps 전략 가이드 ──── 기술 기반 (MCP, Kiro, AI Agent)
│
[2] 지능형 관찰성 스택 ──── 데이터 기반 (ADOT, AMP/AMG, CloudWatch AI)
│
[3] AIDLC 프레임워크 ── 방법론 (이 문서)
│
[4] 예측 스케일링 및 자동 복구 ──────── 심화 (ML 예측, 자동 복구, Chaos)
AIDLC의 핵심 개념은 AWS Labs의 AI-DLC Method Definition에서 정의됩니다. 이 문서는 해당 방법론을 EKS 환경에서 실용적으로 구현하는 가이드입니다.
2. AIDLC 핵심 개념
2.1 10대 원칙
🎯 AIDLC의 핵심 원칙
AWS AI-DLC 방법론의 10대 핵심 원칙
Reimagine Rather Than Retrofit
기존 SDLC/Agile에 AI를 끼워 넣지 않고, 첫 원칙(First Principles)에서 재구성. AI의 빠른 반복 주기(시간/일 단위)에 맞는 새로운 방법론
Reverse the Conversation Direction
AI가 대화를 시작하고 주도하며, 사람은 검증자 역할. Google Maps 비유 — 사람이 목적지 설정, AI가 경로 제시
Integration of Design Techniques
DDD, BDD, TDD를 방법론 핵심에 통합. Scrum처럼 선택사항이 아닌 AI-DLC의 내장 요소
Align with AI Capability
AI-Driven 패러다임 채택 — AI-Assisted(보조)를 넘어 AI가 주도하되, 사람이 최종 검증·의사결정·감독 유지
Cater to Complex Systems
높은 아키텍처 복잡도, 다수의 트레이드오프, 확장성·통합 요구사항을 가진 시스템 대상. 단순 시스템은 Low-code/No-code가 적합
Retain Human Symbiosis
사람 검증과 리스크 관리에 필수적인 산출물(User Story, Risk Register 등) 유지. 실시간 사용에 최적화
Facilitate Transition
기존 실무자가 하루 만에 적응할 수 있도록 친숙한 용어 관계 유지. Sprint→Bolt 등 연상 학습 활용
Streamline Responsibilities
AI가 태스크 분해·의사결정을 수행하여 개발자가 전문화 사일로(프론트/백/DevOps)를 초월. 최소 역할 원칙
Minimize Stages, Maximize Flow
핸드오프와 전환을 최소화하고 연속 반복 흐름 구현. 사람 검증은 Loss Function 역할로 낭비 조기 차단
No Hard-Wired Workflows
개발 경로(신규/리팩터링/결함 수정)마다 고정된 워크플로우를 규정하지 않고, AI가 상황에 맞는 Level 1 Plan을 제안
이 중 EKS 환경에서 특히 중요한 3가지:
- Reverse the Conversation Direction — AI가 EKS 클러스터 상태를 MCP로 수집하고, 배포 계획을 먼저 제안합니다. 개발자는 Google Maps의 운전자처럼 목적지(Intent)를 설정하고, AI가 제시하는 경로를 검증합니다.
- Integration of Design Techniques — DDD를 방법론 핵심에 내장하여, AI가 비즈니스 로직을 Aggregate, Entity, Value Object로 자동 모델링합니다. Scrum에서 "팀이 알아서 선택"하던 설계 기법이 AI-DLC에서는 필수 코어입니다.
- Minimize Stages, Maximize Flow — 핸드오프를 최소화하고 연속 흐름을 구현합니다. 각 단계의 사람 검증은 Loss Function 역할로, 하류에 전파될 오류를 조기에 차단합니다.
2.2 핵심 산출물 (Artifacts)
AI-DLC는 전통적 SDLC의 용어를 AI 시대에 맞게 재정의합니다.
┌─────────┐ ┌─────────┐ ┌─────────┐
│ Intent │───▶│ Unit │───▶│ Bolt │
│ 고수준 목적│ │독립 작업단위│ │빠른 반복 │
│ │ │(DDD Sub- │ │(Sprint │
│비즈니스 목표│ │ domain) │ │ 대체) │
└─────────┘ └─────────┘ └─────────┘
│
┌─────┴─────┐
▼ ▼
┌──────────┐ ┌──────────┐
│ Domain │ │ Logical │
│ Design │ │ Design │
│비즈니스 로직│ │NFR+패턴 │
└──────────┘ └──────────┘
│ │
└─────┬─────┘
▼
┌──────────────┐
│ Deployment │
│ Unit │
│컨테이너+Helm+ │
│ Terraform │
└──────────────┘
AIDLC 핵심 산출물
AI-DLC 방법론의 6대 산출물과 SDLC 대응 관계
Intent
달성할 고수준 목적 — 비즈니스 목표, 기능, 기술 결과. AI 분해의 시작점
Unit
Intent에서 파생된 응집력 있는 독립 작업 단위. DDD Subdomain에 해당하며, 느슨 결합으로 병렬 개발 가능
Bolt
Unit 내 태스크를 빠르게 구현하는 최소 반복 단위. 시간/일 단위 (Sprint의 주/월과 대비)
Domain Design
비즈니스 로직을 인프라와 독립적으로 DDD 원칙(Aggregate, Entity, Value Object, Domain Event)으로 모델링
Logical Design
Domain Design에 NFR과 아키텍처 패턴(CQRS, Circuit Breaker)을 적용. ADR(Architecture Decision Record) 생성
Deployment Unit
패키징된 실행 코드(컨테이너), 설정(Helm), 인프라(Terraform/ACK CRD). 기능·보안·NFR 테스트 완료 상태
산출물 흐름
모든 산출물은 Context Memory로 저장되어 AI가 라이프사이클 전체에서 참조합니다. 산출물 간 양방향 추적(Domain Model ↔ User Story ↔ 테스트 계획)이 보장되어, AI가 항상 정확한 맥락에서 작업합니다.
2.3 AI 주도 재귀적 워크플로우
AI-DLC의 핵심은 AI가 계획을 제안하고 사람이 검증하는 재귀적 정제 과정입니다.
Intent (비즈니스 목적)
│
▼
AI: Level 1 Plan 생성 ◀──── 사람: 검증 · 수정
│
├─▶ Step 1 ──▶ AI: Level 2 분해 ◀── 사람: 검증
│ ├─▶ Sub-task 1.1 ──▶ AI 실행 ◀── 사람: 검증
│ └─▶ Sub-task 1.2 ──▶ AI 실행 ◀── 사람: 검증
│
├─▶ Step 2 ──▶ AI: Level 2 분해 ◀── 사람: 검증
│ └─▶ ...
└─▶ Step N ──▶ ...
[모든 산출물 → Context Memory → 양방향 추적성]
각 단계의 사람 검증은 Loss Function입니다 — 오류를 조기에 포착하여 하류 전파를 방지합니다. AI가 경로별(신규 개발, 리팩터링, 결함 수정) 고정 워크플로우를 규정하지 않고, 상황에 맞는 Level 1 Plan을 제안하는 유연한 접근입니다.
2.4 AIDLC 3단계 개관
AIDLC는 Inception, Construction, Operations 3단계로 구성됩니다.
🔄 AIDLC 3단계 프레임워크
Inception → Construction → Operations
Inception
요구사항 정의 + 아키텍처 설계
- requirements.md
- design.md
Construction
코드 생성 + 테스트 + 리뷰
- 소스 코드
- 테스트
- IaC
Operations
배포 + 모니터링 + 최적화
- GitOps 배포
- 관찰성
- 자동 복구
🔨 AIDLC 단계별 활동
각 단계의 주요 활동, AI 도구, 산출물
2.5 AIDLC 신뢰성 듀얼 축: 온톨로지 × 하네스
AI 생성 코드의 신뢰성을 체계적으로 보장하기 위해, AIDLC는 온톨로지와 하네스 엔지니어링 두 축의 신뢰성 프레임워크를 도입합니다.
두 축의 역할:
- 온톨로지(Ontology) — 도메인 지식을 형식화한 "typed world model". DDD의 Ubiquitous Language를 AI가 이해할 수 있는 구조화된 스키마로 격상합니다. 온톨로지는 정적 스키마가 아니라 자체 피드백 루프를 통해 지속적으로 진화하는 살아있는 모델입니다. 운영 데이터, 인시던트, 엣지 케이스가 발견될 때마다 온톨로지가 정제되고, 이를 통해 AI 에이전트의 행동이 개선됩니다.
- 하네스 엔지니어링(Harness Engineering) — 온톨로지가 정의한 제약을 아키텍처적으로 검증하고 강제하는 구조. "에이전트가 어려운 게 아니라, 하네스가 어렵다"는 2026년의 핵심 교훈입니다. 하네스의 검증 결과는 온톨로지의 진화를 촉진합니다.
AIDLC 3단계별 매핑:
| 단계 | 온톨로지 (정의 + 피드백 루프) | 하네스 (검증 + 제약) |
|---|---|---|
| Inception | 도메인 온톨로지 정의 → Mob Elaboration을 통한 요구사항 정제 루프 | Spec 일관성 검증 하네스 |
| Construction | 코드 생성 제약 → PR 리뷰/메트릭을 통한 온톨로지 갱신 | 빌드/테스트/보안 스캔 하네스 |
| Operations | 운영 컨텍스트 모델 → 관찰성 데이터를 통한 온톨로지 진화 (AIOps → AIDLC) | 런타임 가드레일, 서킷 브레이커 |
피드백 루프는 온톨로지의 내재적 속성입니다. 온톨로지는 3계층으로 진화합니다:
- Inner Loop (분 단위): 테스트 실패 → 프롬프트/온톨로지 제약 정제
- Middle Loop (일 단위): PR 리뷰 피드백 → 온톨로지 스키마 갱신
- Outer Loop (주 단위): 운영 인시던트/SLO 위반 → 도메인 온톨로지 구조 재설계
HITL(Human-in-the-Loop)은 이 진화 과정의 전략적 설계 요소입니다. HITL 통합 시 정확도 31% 향상, False Positive 67% 감소가 확인되었습니다.
3. Inception 단계 — 요구사항에서 설계까지
3.1 Mob Elaboration
Inception의 핵심 리추얼은 Mob Elaboration입니다 — Product Owner, 개발자, QA가 한 방에 모여 AI와 협업하는 요구사항 정제 세션입니다.
┌──────────────────────────────────────────────────┐
│ Mob Elaboration 리추얼 │
├──────────────────────────────────────────────────┤
│ │
│ [AI] Intent를 User Story + Unit으로 분해 제안 │
│ ↓ │
│ [PO + Dev + QA] 검토 · 과잉/부족 설계 조정 │
│ ↓ │
│ [AI] 수정 반영 → NFR · Risk 추가 생성 │
│ ↓ │
│ [팀] 최종 검증 → Bolt 계획 확정 │
│ │
├──────────────────────────────────────────────────┤
│ 산출물: │
│ PRFAQ · User Stories · NFR 정의 │
│ Risk Register · 측정 기준 · Bolt 계획 │
└──────────────────────────────────────────────────┘
기존 방법론에서 수 주~수 개월 걸리던 순차적 요구사항 분석을 AI가 초안을 생성하고 팀이 동시에 검토함으로써 수 시간으로 압축합니다.
3.2 Kiro Spec-Driven Inception
Kiro는 Mob Elaboration의 산출물을 Spec 파일로 체계화합니다. 자연어 요구사항에서 코드까지의 전체 과정을 구조화합니다.
requirements.md → design.md → tasks.md → 코드 생성 → 검증
EKS 예시: Payment Service 배포
requirements.md:
# Payment Service 배포 요구사항
## 기능 요구사항
- REST API 엔드포인트: /api/v1/payments
- DynamoDB 테이블과 연동
- SQS를 통한 비동기 이벤트 처리
## 비기능 요구사항
- P99 레이턴시: < 200ms
- 가용성: 99.95%
- 자동 스케일링: 2-20 Pod
- EKS 1.35+ 호환
design.md:
# Payment Service 아키텍처
## 인프라 구성
- EKS Deployment (3 replicas min)
- ACK DynamoDB Table (on-demand)
- ACK SQS Queue (FIFO)
- HPA (CPU 70%, Memory 80%)
- Karpenter NodePool (graviton, spot)
## 관찰성
- ADOT sidecar (traces → X-Ray)
- Application Signals (SLI/SLO 자동)
- CloudWatch Logs (/eks/payment-service)
## 보안
- Pod Identity (IRSA 대체)
- NetworkPolicy (namespace 격리)
- Secrets Manager CSI Driver
tasks.md:
# 구현 태스크
## Bolt 1: 인프라
- [ ] ACK DynamoDB Table CRD 작성
- [ ] ACK SQS Queue CRD 작성
- [ ] KRO ResourceGroup 정의 (DynamoDB + SQS 통합)
- [ ] Karpenter NodePool 설정 (graviton, spot)
## Bolt 2: 애플리케이션
- [ ] Go REST API 구현
- [ ] DynamoDB SDK 연동
- [ ] SQS consumer 구현
- [ ] Dockerfile + multi-stage build
## Bolt 3: 배포
- [ ] Helm chart 작성
- [ ] Argo CD Application 정의
- [ ] HPA manifest 작성
- [ ] NetworkPolicy 작성
## Bolt 4: 관찰성
- [ ] ADOT sidecar 설정
- [ ] Application Signals annotation
- [ ] CloudWatch 대시보드
- [ ] SLO 알림 설정
디렉팅 방식: "DynamoDB 만들어줘" → "SQS도 필요해" → "이제 배포해줘" → 매번 수동 지시, 맥락 유실 위험 Spec-Driven: Kiro가 requirements.md를 분석 → design.md 생성 → tasks.md 분해 → 코드 자동 생성 → 검증까지 일관된 Context Memory로 연결
3.3 MCP 기반 실시간 컨텍스트 수집
Kiro는 MCP 네이티브로, Inception 단계에서 AWS Hosted MCP 서버를 통해 실시간 인프라 상태를 수집합니다.
[Kiro + MCP 상호작용]
Kiro: "EKS 클러스터 상태 확인"
→ EKS MCP Server: get_cluster_status()
→ 응답: { version: "1.35", nodes: 5, status: "ACTIVE" }
Kiro: "비용 분석"
→ Cost Analysis MCP Server: analyze_cost(service="EKS")
→ 응답: { monthly: "$450", recommendations: [...] }
Kiro: "현재 워크로드 분석"
→ EKS MCP Server: list_deployments(namespace="payment")
→ 응답: { deployments: [...], resource_usage: {...} }
이를 통해 design.md 생성 시 현재 클러스터 상태와 비용을 반영한 설계가 가능합니다. MCP 통합 아키텍처의 상세는 1. AIOps 전략 가이드를 참조하세요.
4. Construction 단계 — 설계에서 코드까지
4.1 DDD 통합: Domain Design에서 Logical Design까지
AI-DLC에서 DDD는 선택사항이 아닌 방법론의 내장 요소입니다. AI가 비즈니스 로직을 자동으로 DDD 원칙에 따라 모델링합니다.
Payment Service 예시:
-
Domain Design — AI가 비즈니스 로직 모델링
- Aggregate:
Payment(transactionId, amount, status) - Entity:
PaymentMethod,Customer - Value Object:
Money,Currency - Domain Event:
PaymentCreated,PaymentCompleted,PaymentFailed
- Aggregate:
-
Logical Design — NFR 적용 + 아키텍처 패턴 선택
- CQRS: 결제 생성(Command) / 조회(Query) 분리
- Circuit Breaker: 외부 결제 게이트웨이 호출
- ADR: "DynamoDB on-demand vs provisioned" 의사결정 기록
-
코드 생성 — AWS 서비스 매핑
- Aggregate → EKS Deployment + DynamoDB Table
- Domain Event → SQS FIFO Queue
- Circuit Breaker → Envoy sidecar + Istio
개발자는 각 단계에서 AI가 생성한 모델을 검증·조정합니다. 이 검증이 Loss Function 역할을 합니다.
4.1.1 온톨로지 기반 개발: DDD에서 형식 온톨로지로
"프롬프트 엔지니어링은 온톨로지 엔지니어링이다" — 2026 AI 커뮤니티 컨센서스
DDD의 Ubiquitous Language는 팀 내 소통을 위한 비형식적 합의입니다. 온톨로지 기반 개발은 이를 AI가 기계적으로 이해하고 준수할 수 있는 **형식 스키마(typed world model)**로 격상합니다.
왜 온톨로지인가?
AI 에이전트가 실패하는 근본 원인은 모델의 약함이나 프롬프트의 부정확함이 아니라, 아키텍처에 의미 구조(semantic structure)가 없기 때문입니다. 사용자, 주문, 태스크, 규칙의 정의가 프롬프트 안에 흩어져 있으면 AI는 맥락을 잃고 환각(hallucination)을 생성합니다.
Kiro Spec + 온톨로지 통합:
# requirements.md 내 도메인 온톨로지 섹션
domain_ontology:
aggregates:
Payment:
invariants:
- "amount는 0보다 커야 한다"
- "status 전이: CREATED → PROCESSING → COMPLETED | FAILED"
entities:
- PaymentMethod: { type: "enum", values: ["CARD", "BANK", "WALLET"] }
- Customer: { attributes: ["customerId", "tier"] }
value_objects:
- Money: { currency: "ISO 4217", amount: "decimal(19,4)" }
domain_events:
- PaymentCreated: { trigger: "결제 요청 수신", data: ["paymentId", "amount"] }
- PaymentCompleted: { trigger: "PG 승인 완료" }
- PaymentFailed: { trigger: "PG 거부 또는 타임아웃" }
relationships:
- "Payment CONTAINS PaymentMethod (1:1)"
- "Customer INITIATES Payment (1:N)"
constraints:
- "동일 Customer의 동시 결제는 최대 3건"
- "FAILED 상태에서 재시도는 최대 2회"
이 온톨로지는 AI 에이전트의 컨텍스트 윈도우에 주입되어:
- 코드 생성 시 엔티티 관계와 불변 조건(invariant)을 자동 준수
- 테스트 생성 시 도메인 이벤트의 전이 경로를 기반으로 경계 케이스 자동 도출
- 코드 리뷰 시 온톨로지 위반(예: 금액이 음수인 결제 생성)을 자동 탐지
온톨로지를 Knowledge Graph로 구체화하면 SemanticForge 패턴을 적용할 수 있습니다 — Knowledge Graph가 constraint satisfaction 하네스 역할을 하여 AI가 생성하는 코드의 논리적/구조적 환각을 원천 차단합니다.
온톨로지 구축 시 공식 문서(Official Documentation)만 참조하면 AI는 "논리적으로 그럴듯한 추론"을 "검증된 사실"로 혼동합니다. 실제 사례:
- 문제: AWS EKS Auto Mode 공식 문서에 "AWS가 GPU 드라이버를 관리한다"고 기술 → AI가 "GPU Operator 설치 불가"로 비약 → 비교표, 아키텍처, 권장사항 전체가 오염
- 원인: 실제 구현 레포(awslabs/ai-on-eks PR #288)를 확인하지 않고 공식 문서의 일반론만으로 추론
- 결과: "기술적 불가능"이라는 잘못된 전제가 문서 전체로 전파되어 12개 이상의 비교표와 아키텍처 권장사항이 모두 틀림
온톨로지에 포함해야 할 지식 소스 계층:
| 우선순위 | 소스 | 예시 | 신뢰도 |
|---|---|---|---|
| 1 | 실제 구현 코드/PR | awslabs/ai-on-eks, Helm chart 소스코드 | 최고 — 실제 동작하는 코드 |
| 2 | 프로젝트 GitHub 이슈/릴리스 | NVIDIA/KAI-Scheduler, ai-dynamo/dynamo | 높음 — 개발자 간 사실 교환 |
| 3 | 공식 문서 | docs.nvidia.com, docs.aws.amazon.com | 중간 — 일반 론, 업데이트 지연 가능 |
| 4 | 블로그/튜토리얼 | Medium, AWS Blog | 낮음 — 특정 시점의 스냅샷 |
원칙: AI가 생성한 기술 문서는 반드시 **실제 구현 코드와 교차 검증(cross-validation)**해야 합니다. 공식 문서의 "할 수 없다"는 "아직 문서화되지 않았다"일 수 있습니다.
온톨로지의 피드백 루프: 살아있는 모델
온톨로지는 한 번 정의하면 끝나는 정적 스키마가 아닙니다. 운영 데이터와 개발 경험을 통해 지속적으로 진화하는 살아있는 모델입니다. 이 자체 피드백 루프가 AIDLC의 신뢰성을 근본적으로 보장합니다.
| 루프 | 주기 | 트리거 | 온톨로지 변화 |
|---|---|---|---|
| Inner | 분 단위 | 테스트 실패, 하네스 위반 | 제약 조건 추가/수정 (예: 누락된 invariant 발견) |
| Middle | 일 단위 | PR 리뷰에서 반복 패턴 | 엔티티/관계 스키마 갱신 (예: 새로운 Value Object 추가) |
| Outer | 주 단위 | 운영 인시던트, SLO 위반 | 도메인 모델 구조 재설계 (예: Aggregate 경계 재정의) |
HITL(Human-in-the-Loop)을 자율성의 과도기가 아닌 온톨로지 진화의 전략적 설계 요소로 배치하세요. HITL 통합 시 정확도 31% 향상, False Positive 67% 감소가 확인되었습니다. 피드백 루프 없이 운영하면 ML 모델의 90%가 프로덕션에 도달하지 못합니다.
사례: 피드백 루프 미적용 시 $28K 비용에 에러율 8.3%→7.9% 미미한 개선. 구조화된 온톨로지 피드백 루프 적용 시 31일 만에 에러율 1.2%까지 감소.
참고 자료:
- Why Ontology Matters for Agentic AI in 2026 — Ken Huang & Bhavya Gupta
- Why AI Agents Fail Without Ontologies — Nihal Parmar, 2026.03
- SemanticForge: Knowledge Graph 기반 환각 방지
- How to Build an AI Agent Feedback Loop — Braincuber, 2026.03
- Human-in-the-Loop in Agentic AI — 2026.03
4.2 Mob Construction
Construction의 핵심 리추얼은 Mob Construction입니다. 팀이 한 방에 모여 각자의 Unit을 개발하며, Domain Design 단계에서 생성한 통합 사양(Integration Specification)을 교환합니다.
[Mob Construction 흐름]
Team A: Payment Unit Team B: Notification Unit
│ │
├─ Domain Design 완료 ├─ Domain Design 완료
│ │
└────── 통합 사양 교환 ──────┘
(Domain Event 계약)
│ │
├─ Logical Design ├─ Logical Design
├─ 코드 생성 ├─ 코드 생성
├─ 테스트 ├─ 테스트
└─ Bolt 전달 └─ Bolt 전달
각 Unit은 느슨하게 결합되어 병렬 개발이 가능하며, Domain Event를 통해 통합됩니다. AI가 통합 테스트도 자동 생성합니다.
기존 시스템에 기능 추가나 리팩터링을 수행하는 경우, Construction 단계에 추가 스텝이 필요합니다:
- AI가 기존 코드를 시맨틱 모델로 역공학 (코드 → 모델 승격)
- Static Model: 컴포넌트, 책임, 관계
- Dynamic Model: 주요 유스케이스의 컴포넌트 상호작용
- 개발자가 역공학된 모델을 검증·수정
- 이후 Green-field와 동일한 Construction 흐름 진행
이를 통해 AI가 기존 시스템의 맥락을 정확히 파악한 상태에서 변경을 수행합니다.
4.3 AI 코딩 에이전트
AIDLC Construction 단계에서 활용하는 AI 코딩 에이전트들입니다. Amazon Q Developer와 Kiro는 Anthropic Claude 모델을 사용하며, Kiro는 오픈 웨이트 모델도 지원하여 비용 최적화와 특수 도메인 확장이 가능합니다.
AI 코딩 에이전트
Amazon Q Developer, Kiro, Claude Code, Cursor, OpenAI Codex
Amazon Q Developer 주요 기능
4.3.4 Amazon Q Developer — 실시간 코드 빌드 및 테스트 (2025)
AWS는 2025년 2월 Amazon Q Developer의 실시간 코드 실행 기능을 발표했습니다. 이는 AI가 코드를 생성한 후 자동으로 빌드하고 테스트를 실행하여 결과를 검증한 뒤 개발자에게 제시하는 혁신적 접근입니다. AIDLC Construction 단계에서 Loss Function을 조기에 작동시켜 오류를 하류로 전파하지 않는 핵심 메커니즘입니다.
실시간 코드 실행 기능
전통적인 AI 코딩 도구는 코드를 생성한 후 개발자가 수동으로 빌드·테스트해야 했습니다. Q Developer는 이 과정을 자동화하여 코드 생성 → 자동 빌드 → 테스트 실행 → 결과 검증 → 개발자 리뷰의 폐쇄 루프를 구현합니다.
기존 방식:
AI 코드 생성 → 개발자 수동 빌드 → 개발자 수동 테스트 → 오류 발견 → AI에게 피드백 → 재생성
(반복 주기: 5-10분)
Q Developer 실시간 실행:
AI 코드 생성 → 자동 빌드 → 자동 테스트 → 결과 검증 → (오류 시 자동 수정 재시도) → 개발자 리뷰
(반복 주기: 1-2분, 개발자 개입 최소화)
핵심 메커니즘
-
자동 빌드 파이프라인
- Q Developer가 코드 변경 후 프로젝트의 빌드 도구(Maven, Gradle, npm, pip 등)를 자동 실행
- 컴파일 오류, 의존성 충돌을 즉시 감지
- 빌드 실패 시 오류 메시지를 분석하여 자동으로 코드 수정 재시도
-
테스트 자동 실행
- 유닛 테스트, 통합 테스트를 자동으로 실행
- 테스트 실패 시 실패 원인을 분석하여 코드 또는 테스트를 수정
- 기존 테스트 커버리지를 유지하며 새 코드 추가
-
개발자 리뷰 전 검증
- 개발자가 코드를 받을 때 이미 빌드와 테스트가 통과한 상태
- 개발자는 비즈니스 로직과 설계 검토에 집중 (Loss Function 역할)
- "코드가 작동하는가?"가 아닌 "올바른 코드인가?"를 검증
보안 스캔 자동 수정 제안
Q Developer는 Kubernetes YAML 및 애플리케이션 코드의 보안 취약점을 자동으로 스캔하고 수정 제안을 제공합니다.
Kubernetes YAML 보안 스캔
-
Root 권한 감지
runAsUser: 0또는runAsNonRoot: false탐지- 제안:
runAsUser: 1000,runAsNonRoot: true
-
Privileged 컨테이너 감지
securityContext.privileged: true탐지- 제안: 필요한 capabilities만 명시적으로 추가 (예:
NET_ADMIN)
-
미설정 securityContext 감지
- Pod/Container에
securityContext가 없는 경우 경고 - 제안: 최소 권한 원칙에 따른 securityContext 추가
- Pod/Container에
자동 수정 제안 예시
# Q Developer가 감지한 문제
apiVersion: v1
kind: Pod
metadata:
name: payment-pod
spec:
containers:
- name: payment
image: payment:v1
securityContext:
runAsUser: 0 # ⚠️ Root 권한 사용
privileged: true # ⚠️ Privileged 모드
# Q Developer가 제안하는 수정
apiVersion: v1
kind: Pod
metadata:
name: payment-pod
spec:
securityContext:
runAsNonRoot: true
runAsUser: 1000
fsGroup: 1000
seccompProfile:
type: RuntimeDefault
containers:
- name: payment
image: payment:v1
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
capabilities:
drop:
- ALL
add:
- NET_BIND_SERVICE # 필요한 capabilities만 추가
AIDLC Construction 단계 통합
Q Developer의 실시간 실행과 보안 스캔은 Construction 단계의 Quality Gate를 자동화하여 AIDLC의 빠른 반복 주기(Bolt)를 실현합니다.
-
Quality Gate에서 Q Developer 보안 스캔 자동 실행
- Kiro가 코드를 생성할 때 Q Developer 보안 스캔을 파이프라인에 통합
- Kubernetes manifest, Dockerfile, 애플리케이션 코드를 자동 스캔
- 취약점 발견 시 수정 제안을 개발자에게 제시 (Loss Function)
-
CI/CD 파이프라인에 Q Developer 검증 단계 추가
- PR 생성 시 GitHub Actions/GitLab CI에서 Q Developer 스캔 실행
- 빌드·테스트 자동 실행으로 "코드가 작동함"을 보장
- 보안 스캔으로 "코드가 안전함"을 보장
- 개발자는 "코드가 올바름"만 검증 (역할 분리)
통합 워크플로우 예시
# .github/workflows/aidlc-construction.yml
name: AIDLC Construction Quality Gate
on:
pull_request:
types: [opened, synchronize]
jobs:
q-developer-validation:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
# 1. Q Developer 보안 스캔
- name: Q Developer Security Scan
uses: aws/amazon-q-developer-action@v1
with:
scan-type: security
source-path: .
auto-fix: true # 자동 수정 제안 적용
# 2. 실시간 빌드 및 테스트
- name: Q Developer Build & Test
uses: aws/amazon-q-developer-action@v1
with:
action: build-and-test
test-coverage-threshold: 80
# 3. Kubernetes manifest 검증
- name: K8s Manifest Security Check
run: |
# Q Developer가 제안한 수정이 적용되었는지 확인
kube-linter lint deploy/ --config .kube-linter.yaml
# 4. 통과 시에만 Argo CD 동기화 허용
- name: Approve for GitOps
if: success()
run: echo "Quality Gate passed. Ready for Argo CD sync."
실제 효과 — 피드백 루프 단축
전통적 Construction 단계:
[개발자] 코드 작성 (30분)
→ [개발자] 수동 빌드 (2분)
→ [개발자] 수동 테스트 (5분)
→ [개발자] 오류 발견 (10분 디버깅)
→ [개발자] 코드 수정 (20분)
→ 반복...
총 소요 시간: 2-3시간
Q Developer 실시간 실행:
[AI] 코드 생성 (1분)
→ [AI] 자동 빌드·테스트 (30초)
→ [AI] 오류 감지 및 자동 수정 (1분)
→ [개발자] Loss Function 검증 (10분)
→ [Argo CD] 자동 배포
총 소요 시간: 15-20분
Q Developer의 실시간 실행은 AIDLC의 핵심 원칙인 **"Minimize Stages, Maximize Flow"**를 구현합니다. 코드 생성 → 빌드 → 테스트 → 검증의 각 단계를 자동화하여 핸드오프를 제거하고, 개발자는 **의사결정(Loss Function)**에만 집중합니다. 이것이 기존 SDLC의 주/월 단위 주기를 AIDLC의 시간/일 단위 주기로 단축하는 핵심 메커니즘입니다.
참고 자료
- AWS DevOps Blog: Enhancing Code Generation with Real-Time Execution in Amazon Q Developer (2025-02-06)
- AWS re:Invent 2025 EKS Research — Section 13.4 참조
4.4 EKS Capabilities 기반 선언적 자동화
EKS Capabilities(2025.11)는 인기 있는 오픈소스 도구를 AWS 관리형으로 제공하여, Construction 단계의 산출물을 선언적으로 배포합니다.
⚡ EKS Capabilities (2025.11)
AWS 관리형 K8s 네이티브 도구
Managed Argo CD
GAAWS 관리형 GitOps
ACK (AWS Controllers for K8s)
GA50+ AWS 서비스 CRD 관리
KRO (K8s Resource Orchestrator)
PreviewResourceGroup CRD 복합 리소스
LBC v3
GAGateway API GA 지원
4.4.1 Managed Argo CD — GitOps
Managed Argo CD는 GitOps를 AWS 인프라에서 관리형으로 운영합니다. Kiro가 생성한 코드 를 Git에 푸시하면 자동으로 EKS에 배포됩니다. Application CRD로 단일 환경을, ApplicationSet으로 멀티 환경(dev/staging/production)을 선언적으로 관리합니다.
4.4.2 ACK — AWS 리소스 선언적 관리
ACK는 50+ AWS 서비스를 K8s CRD로 선언적으로 관리합니다. Kiro가 생성한 Domain Design의 인프라 요소(DynamoDB, SQS, S3 등)를 kubectl apply로 배포하며, Argo CD의 GitOps 워크플로우에 자연스럽게 통합됩니다.
ACK를 사용하면 클러스터 외부의 AWS 리소스도 K8s 선언적 모델로 관리할 수 있습니다. DynamoDB, SQS, S3, RDS 등을 K8s CRD로 생성/수정/삭제하며, 이것이 "K8s를 중심으로 모든 인프라를 선언적으로 관리"하는 전략입니다.