Kiro를 2편까지 써보면 이런 불편함이 생겨요.
"파일 저장할 때마다 Kiro가 우리 팀 컨벤션을 무시하고 엉뚱한 스타일로 코드를 짠다." "Lambda 배포 코드 짜는데 일반적인 Node.js 패턴으로 뱉어낸다."
Steering이 이걸 해결해요. Kiro에 프로젝트별 컨텍스트를 주입해서, 모든 에이전트 인터랙션에 팀 컨벤션·아키텍처 결정·보안 요구사항이 자동으로 적용되게 만드는 기능이에요.
🔑 핵심 요약
Steering + AWS 통합 핵심 → Steering: .kiro/steering/ Markdown 파일 → 모든 에이전트 인터랙션에 자동 포함 → 3가지 포함 방식: Always(항상) / Conditional(파일 접근 시) / Manual(직접 참조) → Generate Steering Docs 버튼 → 레포 분석해서 자동 생성 → AWS 네이티브: Bedrock, Lambda, CDK, CloudFormation, CodeCatalyst 네이티브 통합 → GovCloud 지원 + FedRAMP High 취득 추진 (2026.02) → Kiro vs Cursor vs Claude Code: 복잡도·팀 규모·AWS 의존도에 따라 선택
실전 1 — Steering 파일 구조와 작성법
자동 생성으로 시작하기
Kiro 패널 → Agent Steering → "Generate Steering Docs" 클릭
Kiro가 레포 분석:
→ package.json, README.md, vite.config.js, App.tsx 등 읽기
→ 프로젝트 구조, 사용 라이브러리, 기존 패턴 파악
→ .kiro/steering/ 폴더에 Markdown 파일 자동 생성
생성된 기본 구조:
.kiro/steering/
├── conventions.md # 코딩 컨벤션, 네이밍 규칙
├── architecture.md # 시스템 아키텍처, 레이어 구조
└── tech-stack.md # 사용 기술, 라이브러리 결정
Steering 포함 방식 3가지
# Always — 모든 인터랙션에 항상 포함 (기본값)
# 팀 전체 공통 규칙, 보안 요구사항에 적합
---
inclusion: always
---
## 코딩 컨벤션
- TypeScript strict 모드 필수
- console.log 금지, 반드시 logger 모듈 사용
- 모든 async 함수는 try-catch 처리
---
# Conditional — 특정 파일 접근 시에만 포함
# 무거운 도메인 지식, 특정 모듈 전용 규칙에 적합
---
inclusion: conditional
trigger: "**/*.lambda.ts" # Lambda 파일 접근 시에만
---
## Lambda 함수 규칙
- 콜드 스타트 최소화: 핸들러 밖에서 초기화
- 타임아웃 기본 30초 설정
- 메모리 최소 512MB
---
# Manual — 직접 참조할 때만 포함
# 상황별로 필요한 문서, 방대한 레거시 컨텍스트에 적합
---
inclusion: manual
---
## 레거시 인증 모듈 주의사항
...
실전 2 — Steering 실전 작성 패턴
AWS CDK 팀용 Steering 예시
<!-- .kiro/steering/aws-cdk-conventions.md -->
---
inclusion: conditional
trigger: "**/*.ts,lib/**,bin/**"
---
## AWS CDK 컨벤션
### 스택 구조
- 환경별 스택 분리 (dev/staging/prod)
- 스택당 단일 책임 원칙 적용
- 크로스 스택 참조는 SSM Parameter Store 사용
### Lambda 패턴
- Node.js 22.x 런타임 표준
- Lambda Layer로 공통 의존성 관리
- ARM64 아키텍처 기본 (비용 20% 절감)
- 환경 변수는 반드시 Secrets Manager 참조
### 보안 요구사항
- IAM 최소 권한 원칙 필수
- VPC 내 프라이빗 서브넷 배포
- CloudWatch Logs 90일 보존 정책
- KMS 암호화 모든 데이터 스토어에 적용
### 금지 패턴
- 하드코딩된 ARN 금지 → SSM 참조 사용
- `*` 와일드카드 IAM 권한 금지
- 퍼블릭 S3 버킷 생성 금지
Steering 없을 때 vs 있을 때 차이: Steering 없이 "Lambda 함수 만들어줘"를 프롬프트하면 일반적인 Node.js 패턴 + PublicAccess 설정된 S3 버킷이 나와요. Steering 있으면 ARM64, 프라이빗 서브넷, KMS 암호화가 자동 적용돼요. 매번 프롬프트에 규칙을 붙여 쓰지 않아도 돼요.
보안 팀용 Steering (Always 포함)
<!-- .kiro/steering/security.md -->
---
inclusion: always
---
## 보안 요구사항 (전체 적용)
### 절대 생성 금지
- API 키, 시크릿을 소스 코드에 하드코딩
- 퍼블릭 접근이 가능한 스토리지 리소스
- 인증 없는 API 엔드포인트
### 의존성
- npm 패키지 추가 시 반드시 npm audit 통과 여부 명시
- LICENSE 파일 확인 후 사용 가능 여부 판단
### 로깅
- PII(개인식별정보) 로그 출력 금지
- 에러 로그에 스택 트레이스 프로덕션 환경 노출 금지
실전 3 — AWS 네이티브 통합 실전
Kiro의 가장 큰 차별화는 AWS 서비스와의 네이티브 통합이에요.
Lambda + CDK 네이티브 이해
// Kiro에 프롬프트: "주문 처리 Lambda 함수 추가해줘"
// → Steering의 CDK 컨벤션 자동 적용
// Kiro가 생성하는 코드 (steering 반영)
export class OrderProcessingStack extends Stack {
constructor(scope: Construct, id: string, props: StackProps) {
super(scope, id, props);
// ARM64 + 프라이빗 서브넷 + KMS — Steering에서 자동 적용
const orderHandler = new NodejsFunction(this, 'OrderHandler', {
runtime: Runtime.NODEJS_22_X,
architecture: Architecture.ARM_64, // ← Steering: ARM64 기본
memorySize: 512, // ← Steering: 최소 512MB
timeout: Duration.seconds(30), // ← Steering: 타임아웃 30초
vpc: props.vpc,
vpcSubnets: { subnetType: SubnetType.PRIVATE_WITH_EGRESS },
environment: {
// 하드코딩 없음 — SSM 참조로 자동 처리
DB_SECRET_ARN: StringParameter.valueForStringParameter(
this, '/prod/db/secret-arn'
),
},
// KMS 암호화 자동 적용
environmentEncryption: props.kmsKey,
});
}
}
CodeCatalyst 통합
Kiro ↔ CodeCatalyst 연동 시:
→ CodeCatalyst 이슈 → Kiro Spec 자동 생성
→ Spec 완료 → CodeCatalyst PR 자동 생성
→ PR 리뷰 코멘트 → Kiro 에이전트 자동 수정
→ CodeCatalyst 워크플로우 → Kiro Hooks 트리거 연동
실무 패턴:
CodeCatalyst 이슈 #234 "결제 실패 시 재시도 로직 추가"
↓ Kiro 자동 감지
.kiro/specs/payment-retry/requirements.md 생성
↓ 요구사항 승인
태스크 구현 → 테스트 → PR 생성 → CodeCatalyst 이슈 자동 Close
멀티 AWS 계정 격리 패턴
AWS Organization
├── Client A 계정
│ ├── .kiro/ (Client A 전용 Steering)
│ ├── CodeCatalyst 레포
│ └── Bedrock 접근 (us-east-1)
│
├── Client B 계정
│ ├── .kiro/ (Client B 전용 Steering)
│ ├── CodeCatalyst 레포
│ └── Bedrock 접근 (us-east-1)
│
└── Shared Services 계정
├── IAM Identity Center (모든 Kiro 로그인)
└── 통합 결제
→ 계정 경계로 클라이언트 IP, Secrets, Bedrock 비용 격리
→ 컨벤션이 아니라 IAM이 강제
실전 4 — Cursor vs Claude Code vs Kiro 선택 기준
┌─────────────┬──────────────┬──────────────┬──────────────┐
│ │ Cursor │ Claude Code │ Kiro │
├─────────────┼──────────────┼──────────────┼──────────────┤
│ 가격 │ $20/월 │ $20/월~ │ $19/월 │
│ 철학 │ 빠른 반복 │ 자율 에이전트│ 스펙 기반 │
│ 컨텍스트 │ 전체 레포 │ 200K~1M토큰 │ Spec+Steering│
│ AWS 통합 │ 없음 │ MCP 설정 │ 네이티브 │
│ 팀 규칙 │ .cursorrules │ CLAUDE.md │ Steering │
│ 문서화 │ 없음 │ 없음 │ Spec 자동 │
│ GovCloud │ ❌ │ ❌ │ ✅ │
│ SWE-bench │ 공개 안 함 │ 87.6% │ 공개 안 함 │
└─────────────┴──────────────┴──────────────┴──────────────┘
Kiro가 맞는 상황
✅ AWS 스택 중심 팀 (Lambda, CDK, CloudFormation, CodeCatalyst)
✅ 팀 3명 이상, 컨벤션 강제가 필요한 환경
✅ 규제 산업 (금융, 헬스케어) — GovCloud, FedRAMP 요건
✅ 복잡한 기능 — 요구사항 추적, 설계 문서가 필수인 프로젝트
✅ Q Developer 현 사용자 (2027.04 지원 종료 전 전환 필수)
Claude Code가 맞는 상황
✅ SWE-bench 87.6% — 복잡한 멀티파일 자율 리팩토링
✅ 클라우드 무관 (AWS/GCP/Azure 혼합 환경)
✅ CLAUDE.md로 프로젝트 에이전트 동작 정밀 제어
✅ 터미널 기반 CI/CD 파이프라인 통합
✅ 대형 코드베이스 자율 이해 + 구현
Cursor가 맞는 상황
✅ 빠른 이터레이션, 프로토타이핑 위주
✅ AWS 외 환경 (GCP, Azure, 온프레미스)
✅ IDE 내 인라인 편집 중심 워크플로우
✅ 솔로 개발자, 소규모 팀
2026년 현실적인 조합 패턴
대형 AWS 팀:
→ Kiro: 복잡한 기능 스펙 작성 + 팀 컨벤션 강제
→ Claude Code: 아키텍처 결정, 대형 리팩토링
→ Cursor: 일상 인라인 편집, 빠른 수정
AWS 없는 팀:
→ Claude Code: 복잡한 자율 태스크
→ Cursor: 일상 편집
→ Copilot: GitHub 이슈 → PR 자동화
✅ 결론
✅ Steering은 CLAUDE.md의 AWS 버전이에요. Always/Conditional/Manual 세 가지 포함 방식으로 인터랙션 유형마다 다른 컨텍스트를 주입할 수 있어요. CDK 파일 작업 시에만 Lambda 규칙이 들어오는 Conditional 설정이 실무에서 특히 유용해요.
✅ Kiro의 진짜 강점은 AWS 생태계 안에 있어요. CodeCatalyst 이슈 → Spec → PR 파이프라인, IAM 멀티계정 격리, GovCloud 지원은 다른 AI IDE가 따라올 수 없는 영역이에요.
❌ AWS 생태계 밖에선 Kiro의 강점이 절반 이상 사라져요. Bedrock·CDK·CodeCatalyst 통합이 핵심 가치인데, GCP·Azure 팀은 이 이점을 못 살리고 $19/월을 쓰는 셈이에요.
❌ Bedrock 비용을 별도로 모니터링해야 해요. Kiro의 기본 모델 라우팅은 편리하지만, 팀 규모가 커지면 Bedrock 청구가 예상을 초과할 수 있어요. 프로젝트별 Bedrock 비용 알림 설정을 권장해요.
관련 글
- AWS Kiro 완전 가이드 1편 — Amazon Q Developer가 사라진 이유와 Kiro 설치 세팅: https://cell-devlog.tistory.com/351
- AWS Kiro 완전 가이드 2편 — Specs·Hooks 실전, 스펙 기반 개발 워크플로우: https://cell-devlog.tistory.com/352
- AWS Kiro 완전 가이드 3편 — Steering 실전 + AWS 네이티브 통합 + Cursor·Claude Code·Kiro 선택 기준: https://cell-devlog.tistory.com/353
'Kiro' 카테고리의 다른 글
| AWS Kiro 완전 가이드 2편 — Specs·Hooks 실전, 스펙 기반 개발 워크플로우 (0) | 2026.06.02 |
|---|---|
| AWS Kiro 완전 가이드 1편 — Amazon Q Developer가 사라진 이유와 Kiro가 뭔지 (0) | 2026.06.02 |