본문으로 바로가기
리옵트 핸드북
리옵트 핸드북
Kiro 고급 활용Ch1. 플랜 & 환경 설정Ch2. Steering 마스터하기Ch3. 멀티세션 워크플로우Ch4. 서브에이전트 활용Ch5. Hooks 시스템Ch6. MCP 서버 연동Ch7. Powers & 커스텀 도구Ch8. Autopilot 모드 활용Ch9. 컨텍스트 관리Ch10. IDE 기능 활용Ch11. Spec 기반 개발Ch12. 바이브코딩 실전 패턴Ch13. 커뮤니티 & 리소스Ch14. 트러블슈팅 & FAQ엔터프라이즈 패턴빠른 참조 가이드

업데이트 히스토리
핸드북›Kiro 고급 활용›Ch14. 트러블슈팅 & FAQ

Ch14. 트러블슈팅 & FAQ

크레딧 급소진·응답 품질 저하·느린 속도·MCP 연결 실패·Hook 미실행 등 자주 겪는 문제의 진단 절차와 해결책, 헬스체크·메트릭·응급 초기화 가이드

핵심 요약

  • 크레딧 급소진은 무한 루프·대용량 파일·비효율 프롬프트가 원인이며, 작업 중단→Settings·Usage 확인→컨텍스트 제한 순으로 대응합니다.
  • 응답 품질이 떨어지면 새 세션 재시작·컨텍스트 정리·모델 전환으로, 느린 응답은 컨텍스트를 50K 토큰 이하로 유지하고 불필요한 #File을 빼서 해결합니다.
  • MCP 연결 실패는 프로세스·포트·로그(~/.kiro/logs/mcp-*.log)와 mcp.json 문법을 점검하고, 커스텀 서버는 로깅·타임아웃 래퍼로 디버깅합니다.
  • 데이터 손실은 config.json의 autoBackup·crashRecovery로 예방하고, 헬스체크·메트릭 스크립트로 상태를 모니터링합니다.
  • 최후 수단으로 백업 후 ~/.kiro 삭제·재설치하는 응급 초기화와 최소 동작 설정 복구 절차를 제공합니다.

Kiro를 쓰다 보면 마주치는 여러 문제와 해결책을 정리했습니다. 실제 사용자가 자주 겪는 문제를 중심으로 해결 방법을 차근차근 짚어봅니다.

🚨 긴급 상황 대응

크레딧 소진 위기

증상: 갑자기 크레딧이 빠르게 소모됨 원인: 무한 루프, 대용량 파일 처리, 비효율적인 프롬프트

즉시 대응:
1. 현재 실행 중인 작업 중단
2. 크레딧 사용 내역 확인: Settings → Usage
3. 비효율적인 패턴 식별

근본 해결:
- 컨텍스트 크기 제한 설정
- 파일 참조 최적화
- 프롬프트 효율성 개선

응답 품질 급격한 저하

증상: 갑자기 엉뚱한 답변이나 오류 코드 생성 원인: 컨텍스트 오염, 모델 과부하, 네트워크 이슈

체크리스트:
□ 새로운 세션으로 재시작
□ 컨텍스트 정리 및 최적화
□ 네트워크 연결 상태 확인
□ Kiro 서버 상태 확인 (Discord 공지)
□ 다른 모델로 전환 테스트

데이터 손실 방지

증상: 작업 중 갑작스러운 종료나 오류 예방책: 자동 백업 및 복구 시스템

// .kiro/config.json
{
  "autoBackup": {
    "enabled": true,
    "interval": 300,
    "maxBackups": 10,
    "backupPath": ".kiro/backups"
  },
  "crashRecovery": {
    "enabled": true,
    "saveInterval": 60,
    "autoRestore": true
  }
}

🔧 성능 최적화 문제

느린 응답 속도

문제: Kiro 응답이 너무 느림 (30초 이상)

진단 단계:
1. 컨텍스트 크기 확인
   - 현재 컨텍스트: Settings → Context Info
   - 권장: 50,000 토큰 이하

2. 파일 참조 최적화
   - 불필요한 #File 참조 제거
   - 큰 파일은 관련 부분만 참조

3. MCP 서버 상태 확인
   - 응답 시간이 긴 MCP 서버 식별
   - 타임아웃 설정 조정

해결책:
- 컨텍스트 정리: "이전 대화 내용을 요약해주세요"
- 세션 분할: 복잡한 작업을 여러 세션으로 나누기
- 캐시 활용: 반복되는 작업은 결과를 저장

메모리 사용량 과다

문제: Kiro가 시스템 메모리를 과도하게 사용

// 메모리 최적화 설정
{
  "performance": {
    "maxMemoryUsage": "2GB",
    "garbageCollection": {
      "enabled": true,
      "interval": 300,
      "threshold": "1.5GB"
    },
    "contextCaching": {
      "enabled": true,
      "maxCacheSize": "500MB",
      "ttl": 3600
    }
  }
}

네트워크 연결 문제

문제: 간헐적인 연결 끊김이나 타임아웃

네트워크 진단:
1. 연결 상태 확인
   ping kiro.dev
   curl -I https://kiro.dev/api/health

2. 프록시/방화벽 설정 확인
   - 회사 네트워크의 경우 IT 팀 문의
   - VPN 사용 시 연결 안정성 확인

3. DNS 설정 확인
   - 공용 DNS 사용 (8.8.8.8, 1.1.1.1)
   - DNS 캐시 초기화

해결책:
- 재시도 로직 활성화
- 타임아웃 값 조정
- 오프라인 모드 활용 (가능한 경우)

🐛 코드 생성 문제

잘못된 코드 생성

문제: 문법 오류나 논리적 오류가 있는 코드 생성

예방 전략:
1. 명확한 요구사항 제시
   ❌ "로그인 기능 만들어줘"
   ✅ "Express.js에서 JWT를 사용한 로그인 API를 만들어주세요. 
       이메일/비밀번호 검증, 토큰 발급, 에러 처리 포함"

2. 컨텍스트 제공
   - 기존 코드 스타일 참조
   - 사용 중인 라이브러리 명시
   - 프로젝트 구조 설명

3. 단계별 검증
   - 작은 단위로 나누어 요청
   - 각 단계마다 검토 및 테스트
   - 문제 발견 시 즉시 수정 요청

보안 취약점이 있는 코드

문제: 보안상 위험한 코드 패턴 생성

보안 체크리스트:
□ SQL 인젝션 방어 (Prepared Statement 사용)
□ XSS 방어 (입력 검증 및 이스케이프)
□ CSRF 토큰 구현
□ 민감 정보 하드코딩 방지
□ 적절한 인증/인가 로직
□ 안전한 암호화 알고리즘 사용

자동 보안 검사:
"생성된 코드를 OWASP Top 10 기준으로 보안 검토해주세요"

성능이 나쁜 코드

문제: 비효율적이거나 느린 코드 생성

성능 최적화 요청 패턴:
"다음 요구사항을 만족하는 고성능 코드를 작성해주세요:
- 시간 복잡도: O(n) 이하
- 메모리 사용량 최소화
- 데이터베이스 쿼리 최적화
- 캐싱 전략 포함
- 비동기 처리 활용"

코드 리뷰 요청:
"작성된 코드의 성능을 분석하고 병목점을 찾아 개선해주세요"

🔌 MCP 서버 문제

MCP 서버 연결 실패

문제: MCP 서버가 연결되지 않거나 응답하지 않음

# 진단 명령어
# MCP 서버 상태 확인
ps aux | grep mcp

# 로그 확인
tail -f ~/.kiro/logs/mcp-*.log

# 포트 사용 확인
netstat -tulpn | grep :8000

# 수동 테스트
curl -X POST http://localhost:8000/mcp \
  -H "Content-Type: application/json" \
  -d '{"method": "ping"}'

해결 단계:

1. 기본 확인
   - MCP 서버 프로세스 실행 여부
   - 포트 충돌 확인
   - 환경 변수 설정 확인

2. 설정 검증
   - .kiro/mcp.json 문법 확인
   - 명령어 경로 확인
   - 권한 설정 확인

3. 재시작 시도
   - MCP 서버 재시작
   - Kiro 재시작
   - 시스템 재부팅 (최후 수단)

MCP 서버 성능 문제

문제: MCP 서버 응답이 느리거나 타임아웃 발생

// 성능 최적화 설정
{
  "mcpServers": {
    "slow-server": {
      "command": "uvx",
      "args": ["mcp-server-slow"],
      "timeout": 60,
      "retries": 3,
      "poolSize": 5,
      "caching": {
        "enabled": true,
        "ttl": 300,
        "maxSize": "100MB"
      },
      "rateLimiting": {
        "requestsPerSecond": 10,
        "burstLimit": 20
      }
    }
  }
}

커스텀 MCP 서버 디버깅

문제: 자체 개발한 MCP 서버에서 오류 발생

# 디버깅용 MCP 서버 템플릿
import logging
import traceback
from mcp.server import Server

# 로깅 설정
logging.basicConfig(
    level=logging.DEBUG,
    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
    handlers=[
        logging.FileHandler('mcp_server.log'),
        logging.StreamHandler()
    ]
)

logger = logging.getLogger(__name__)
app = Server("debug-server")

@app.call_tool()
async def call_tool(name: str, arguments: dict):
    logger.info(f"Tool called: {name} with args: {arguments}")
    
    try:
        # 입력 검증
        if not arguments:
            raise ValueError("No arguments provided")
        
        # 도구 실행
        result = await execute_tool_safely(name, arguments)
        
        logger.info(f"Tool {name} completed successfully")
        return result
        
    except Exception as e:
        logger.error(f"Tool {name} failed: {str(e)}")
        logger.error(f"Traceback: {traceback.format_exc()}")
        
        # 사용자 친화적 에러 메시지
        return TextContent(
            type="text",
            text=f"Error in {name}: {str(e)}\nCheck logs for details."
        )

async def execute_tool_safely(name: str, arguments: dict):
    """안전한 도구 실행 래퍼"""
    # 타임아웃 설정
    import asyncio
    try:
        return await asyncio.wait_for(
            execute_tool_impl(name, arguments),
            timeout=30.0
        )
    except asyncio.TimeoutError:
        raise Exception(f"Tool {name} timed out after 30 seconds")

🎯 워크플로우 문제

Spec 기반 개발 실패

문제: Spec을 작성했지만 원하는 결과가 나오지 않음

Spec 품질 체크리스트:
□ 명확한 요구사항 정의
□ 구체적인 기술 스택 명시
□ 예상 입출력 예시 포함
□ 제약사항 및 비기능 요구사항
□ 테스트 시나리오 정의
□ 외부 파일 참조 정확성

개선 방법:
1. Spec 템플릿 사용
2. 단계별 검증 포인트 추가
3. 팀 리뷰 프로세스 도입
4. 성공 사례 벤치마킹

멀티세션 동기화 문제

문제: 여러 세션 간 작업 결과가 충돌하거나 일관성이 없음

# 동기화 스크립트 예시
#!/bin/bash
# sync-sessions.sh

echo "Starting session synchronization..."

# 1. 각 세션의 변경사항 확인
for session in session-*; do
    if [ -d "$session" ]; then
        echo "Checking $session..."
        cd "$session"
        git status --porcelain
        cd ..
    fi
done

# 2. 충돌 가능성 검사
echo "Checking for potential conflicts..."
find . -name "*.conflict" -type f

# 3. 자동 병합 시도
echo "Attempting automatic merge..."
git merge --no-commit --no-ff session-a/main session-b/main

# 4. 충돌 해결 가이드 표시
if [ $? -ne 0 ]; then
    echo "Conflicts detected. Manual resolution required:"
    git status --porcelain | grep "^UU"
fi

Hook 실행 실패

문제: 설정한 Hook이 실행되지 않거나 오류 발생

// Hook 디버깅 설정
{
  "hooks": {
    "debug": true,
    "logLevel": "verbose",
    "timeout": 30,
    "onError": "log",
    "testMode": false
  },
  "fileEdited": [
    {
      "name": "debug-hook",
      "patterns": ["**/*.ts"],
      "action": "askAgent",
      "prompt": "Debug: File edited - {{filename}}",
      "debug": {
        "logExecution": true,
        "validatePattern": true,
        "dryRun": false
      }
    }
  ]
}

📊 모니터링 및 로깅

종합 상태 모니터링

#!/bin/bash
# kiro-health-check.sh

echo "=== Kiro Health Check ==="

# 1. 프로세스 상태
echo "1. Process Status:"
ps aux | grep -E "(kiro|mcp)" | grep -v grep

# 2. 메모리 사용량
echo "2. Memory Usage:"
free -h

# 3. 디스크 사용량
echo "3. Disk Usage:"
df -h ~/.kiro

# 4. 네트워크 연결
echo "4. Network Connectivity:"
ping -c 3 kiro.dev

# 5. MCP 서버 상태
echo "5. MCP Server Status:"
for port in 8000 8001 8002; do
    nc -z localhost $port && echo "Port $port: OK" || echo "Port $port: FAIL"
done

# 6. 로그 에러 확인
echo "6. Recent Errors:"
tail -n 50 ~/.kiro/logs/*.log | grep -i error | tail -10

# 7. 크레딧 사용량 (API 호출 필요)
echo "7. Credit Usage:"
echo "Check manually in Kiro Settings → Usage"

echo "=== Health Check Complete ==="

성능 메트릭 수집

# kiro-metrics.py
import json
import time
import psutil
from datetime import datetime

class KiroMetrics:
    def __init__(self):
        self.metrics = {
            "timestamp": datetime.now().isoformat(),
            "system": {},
            "kiro": {},
            "mcp": {}
        }
    
    def collect_system_metrics(self):
        """시스템 메트릭 수집"""
        self.metrics["system"] = {
            "cpu_percent": psutil.cpu_percent(interval=1),
            "memory_percent": psutil.virtual_memory().percent,
            "disk_usage": psutil.disk_usage('/').percent,
            "network_io": psutil.net_io_counters()._asdict()
        }
    
    def collect_kiro_metrics(self):
        """Kiro 관련 메트릭 수집"""
        kiro_processes = [p for p in psutil.process_iter(['pid', 'name', 'memory_info', 'cpu_percent']) 
                         if 'kiro' in p.info['name'].lower()]
        
        self.metrics["kiro"] = {
            "process_count": len(kiro_processes),
            "total_memory_mb": sum(p.info['memory_info'].rss for p in kiro_processes) / 1024 / 1024,
            "total_cpu_percent": sum(p.info['cpu_percent'] or 0 for p in kiro_processes)
        }
    
    def collect_mcp_metrics(self):
        """MCP 서버 메트릭 수집"""
        mcp_processes = [p for p in psutil.process_iter(['pid', 'name', 'memory_info', 'cpu_percent']) 
                        if 'mcp' in p.info['name'].lower()]
        
        self.metrics["mcp"] = {
            "server_count": len(mcp_processes),
            "total_memory_mb": sum(p.info['memory_info'].rss for p in mcp_processes) / 1024 / 1024,
            "total_cpu_percent": sum(p.info['cpu_percent'] or 0 for p in mcp_processes)
        }
    
    def save_metrics(self, filepath="kiro_metrics.json"):
        """메트릭을 파일로 저장"""
        with open(filepath, 'a') as f:
            f.write(json.dumps(self.metrics) + '\n')
    
    def run(self):
        """전체 메트릭 수집 실행"""
        self.collect_system_metrics()
        self.collect_kiro_metrics()
        self.collect_mcp_metrics()
        self.save_metrics()
        return self.metrics

if __name__ == "__main__":
    metrics = KiroMetrics()
    result = metrics.run()
    print(json.dumps(result, indent=2))

🆘 응급 복구 가이드

완전 초기화

상황: 모든 것이 망가져서 처음부터 다시 시작해야 할 때

#!/bin/bash
# emergency-reset.sh

echo "⚠️  EMERGENCY RESET - This will delete all Kiro data!"
read -p "Are you sure? (type 'YES' to continue): " confirm

if [ "$confirm" != "YES" ]; then
    echo "Reset cancelled."
    exit 1
fi

echo "1. Stopping all Kiro processes..."
pkill -f kiro
pkill -f mcp

echo "2. Backing up current configuration..."
mkdir -p ~/kiro-backup-$(date +%Y%m%d-%H%M%S)
cp -r ~/.kiro ~/kiro-backup-$(date +%Y%m%d-%H%M%S)/ 2>/dev/null || true

echo "3. Removing Kiro data..."
rm -rf ~/.kiro

echo "4. Reinstalling Kiro..."
curl -fsSL https://kiro.dev/install.sh | bash

echo "5. Reset complete. Please reconfigure Kiro."

설정 복구

상황: 설정 파일이 손상되었을 때

// 최소 동작 설정 (emergency-config.json)
{
  "version": "1.0",
  "defaultMode": "vibe",
  "maxContextSize": 50000,
  "autoSave": true,
  "performance": {
    "maxMemoryUsage": "1GB",
    "timeout": 30
  },
  "mcpServers": {},
  "hooks": {},
  "steering": {
    "enabled": false
  }
}

이 트러블슈팅 가이드만 있으면 Kiro를 쓰다 마주치는 문제 대부분은 직접 해결할 수 있습니다. 그래도 문제가 계속되면 Discord 커뮤니티나 GitHub Issues에 도움을 요청하세요!

참고 문서

  • Kiro 공식 사이트: https://kiro.dev
  • Discord 커뮤니티: https://discord.com/servers/1374034175430230016
  • GitHub Issues: https://github.com/kirodotdev/Kiro/issues

관련 문서

Ch13. 커뮤니티 & 리소스

공식 문서·changelog·Discord·GitHub 토픽, Awesome MCP Servers와 cc-sdd 등 오픈소스, 학습 채널과 단계별 Kiro 마스터 로드맵 정리

빠른 참조 가이드

#File·#Folder·#Problems 등 컨텍스트 참조, Steering·Hook·MCP 설정 스니펫, Kiro CLI v1.28 명령어와 단축키·트러블슈팅을 한눈에 모은 치트시트

Ch11. MCP 연동

Codex 고급 활용 · STDIO·Streamable HTTP MCP 서버 등록(codex mcp add), allowlist·enabled_tools·timeout 정책, resource/action 서버 분리와 plugin 마켓플레이스 라이프사이클로 외부 도구 연동을 통제하는 운영 가이드

Ch6. MCP 서버 연동

Claude Code 고급 활용 · Claude Code에서 Model Context Protocol 서버와 도구·리소스를 운영하는 방법

Cmd. /mcp

Claude Code 명령어 마스터 · MCP 서버 연결과 OAuth 인증을 관리하고, 노출된 도구 상태를 점검하는 명령

Ch13. 커뮤니티 & 리소스

공식 문서·changelog·Discord·GitHub 토픽, Awesome MCP Servers와 cc-sdd 등 오픈소스, 학습 채널과 단계별 Kiro 마스터 로드맵 정리

엔터프라이즈 패턴

GovCloud·Okta/Entra·MCP/Model Governance, Git Submodule 기반 중앙 Steering, CI/CD·감사 로그·ROI 측정까지 대규모 팀의 Kiro 운영 패턴

On this page

🚨 긴급 상황 대응크레딧 소진 위기응답 품질 급격한 저하데이터 손실 방지🔧 성능 최적화 문제느린 응답 속도메모리 사용량 과다네트워크 연결 문제🐛 코드 생성 문제잘못된 코드 생성보안 취약점이 있는 코드성능이 나쁜 코드🔌 MCP 서버 문제MCP 서버 연결 실패MCP 서버 성능 문제커스텀 MCP 서버 디버깅🎯 워크플로우 문제Spec 기반 개발 실패멀티세션 동기화 문제Hook 실행 실패📊 모니터링 및 로깅종합 상태 모니터링성능 메트릭 수집🆘 응급 복구 가이드완전 초기화설정 복구참고 문서