컨텍스트 초과, 타임아웃, 파일 수정 실패, MCP 끊김, Git 충돌, API rate limit까지. Claude Code 런타임 에러의 원인과 해결법을 케이스별로 정리.
Claude Code 가이드 #20 — 설치와 인증은 통과했는데, 실제 작업 도중 에러가 터진다면? 컨텍스트 초과, 타임아웃, 파일 수정 실패, MCP 연결 끊김, Git 충돌, API rate limit까지 — 런타임에서 발생하는 모든 에러의 원인과 해결법을 케이스별로 정리했습니다.
Claude Code 가이드 #20 — 런타임 에러 & 성능 트러블슈팅 — 에러 계층별 진단 흐름도 (출처: 공식 문서 기반)
빠른 상태 점검 명령어
# Claude Code 버전 및 상태 확인
claude --version
claude /doctor
# 현재 컨텍스트 토큰 사용량 확인 (세션 내)
claude /status
# MCP 서버 연결 상태 확인
claude mcp list
# 시스템 자원 확인
top -l 1 | grep -E "CPU|PhysMem" # macOS
free -h && top -bn1 | head -5 # Linux
컨텍스트 윈도우 초과 (토큰 초과 에러)
증상: 작업 중간에 “context window exceeded” 또는 “This conversation has reached its context limit” 메시지가 나타나며 Claude가 응답을 중단합니다.
원인: Claude Code 세션의 누적 입출력 토큰이 모델의 컨텍스트 윈도우 한도(claude-sonnet-4 기준 200K 토큰)를 초과했습니다. 대용량 파일을 반복 첨부하거나 긴 대화를 이어갈 때 주로 발생합니다.
즉시 해결
세션을 새로 시작하거나 컨텍스트를 압축해야 합니다.
Claude Code 가이드 #20 — 런타임 에러 & 성능 트러블슈팅 — CLI 실행 화면과 출력 결과 (출처: 공식 문서 및 벤치마크 데이터 기반)
컨텍스트 초과 시 즉시 조치
# 방법 1: 새 세션 시작 (가장 확실)
# 현재 세션 종료 후 재시작
exit
claude
# 방법 2: /clear 로 컨텍스트 리셋 (같은 세션 유지)
claude /clear
# 방법 3: --continue 플래그로 이전 세션 요약 이어가기
claude --continue
# 방법 4: 컴팩트 모드 요청 (Claude에게 직접)
# "지금까지 내용을 3줄로 요약하고 핵심 상태만 유지해줘"
⚠️ 막히는 케이스:/clear 후에도 같은 파일을 다시 첨부하면 즉시 토큰이 쌓입니다. 대용량 파일(1000줄+)은 필요한 함수/블록만 잘라서 붙여넣고, 전체 파일 첨부는 피하세요. CLAUDE.md에 auto-compact: true를 설정하면 자동 압축이 활성화됩니다.
예방 설정
CLAUDE.md에 컨텍스트 최적화 지시를 추가하면 세션 전반에 걸쳐 토큰 사용량을 줄일 수 있습니다. 상세한 전략은 가이드 #18 — 컨텍스트 & 토큰 최적화를 참고하세요.
CLAUDE.md 컨텍스트 최적화 설정 예시
# CLAUDE.md 에 추가
## 컨텍스트 관리 원칙
- 파일 전체를 읽기 전에 필요한 함수/섹션만 먼저 요청할 것
- 작업 단위를 완료할 때마다 진행 상태를 1~2줄로 요약할 것
- 500줄 이상 파일은 Read tool 의 offset/limit 파라미터 사용
- auto-compact: true
느린 응답 / 타임아웃
증상: 명령을 입력했는데 수십 초 동안 응답이 없거나, Request timed out / ETIMEDOUT 에러가 발생합니다.
원인: 크게 세 가지입니다.
네트워크 불안정 또는 Anthropic API 서버 과부하
너무 큰 파일/프롬프트를 한 번에 전송 (업로드 타임아웃)
회사 프록시 또는 VPN이 장시간 연결을 차단
타임아웃 진단 및 해결
# API 서버 응답 시간 확인
curl -w "\nTime: %{time_total}s\n" -o /dev/null -s https://api.anthropic.com
# Anthropic 서비스 상태 확인
# https://status.anthropic.com
# 타임아웃 설정 연장 (환경변수)
export CLAUDE_TIMEOUT=120000 # 기본값보다 길게 (ms 단위)
# 프록시 환경에서 keep-alive 설정
export HTTPS_PROXY=http://your-proxy:port
export NO_PROXY=localhost,127.0.0.1
⚠️ 막히는 케이스: VPN을 켠 상태에서만 타임아웃이 발생한다면 VPN 터널이 idle 연결을 끊는 것이 원인입니다. VPN 설정에서 keepalive 패킷을 활성화하거나, 작업 중 주기적으로 짧은 명령을 보내 연결을 유지하세요. 또는 claudeignore에 대용량 파일을 등록해 전송량 자체를 줄이세요.
파일 수정 실패 / 권한 에러
증상: Claude가 파일을 수정하려고 시도하지만 EACCES: permission denied 또는 EPERM: operation not permitted 에러와 함께 실패합니다.
원인: 두 가지 가능성이 있습니다.
OS 파일 권한 문제: 해당 파일/디렉토리가 현재 사용자의 쓰기 권한을 가지고 있지 않음
Claude Code 권한 설정:--dangerously-skip-permissions 없이 실행했거나 특정 파일 패턴이 차단되어 있음
파일 권한 진단 및 해결
# 파일 권한 확인
ls -la /path/to/file
# 현재 사용자 확인
whoami
# 권한 수정 (자신의 파일인 경우)
chmod 644 /path/to/file
chown $(whoami) /path/to/file
# 디렉토리 전체 권한 수정
chmod -R 755 /path/to/directory
chown -R $(whoami) /path/to/directory
# Claude Code 권한 모드 확인 (settings.json)
cat ~/.claude/settings.json | grep -A5 "permissions"
⚠️ 막히는 케이스:--dangerously-skip-permissions로 실행해도 여전히 특정 파일 수정이 막힌다면, settings.json의 denyList에 해당 경로가 등록되어 있는지 확인하세요. ~/.claude/settings.json을 열어 denyList 항목을 점검하세요.
Claude Code 가이드 #20 — 런타임 에러 & 성능 트러블슈팅 — 권한 에러 진단 프로세스 (출처: 공식 문서 기반)
서브에이전트 / Agent Teams 에러
증상: 서브에이전트가 시작 후 응답 없이 멈추거나, Agent Teams에서 에이전트 간 통신이 끊기며 작업이 완료되지 않습니다. 콘솔에 Agent failed 또는 Subagent timeout 메시지가 출력될 수 있습니다.
원인:
서브에이전트가 컨텍스트 초과로 멈춤
각 에이전트에 전달된 프롬프트가 너무 모호하거나 의존성이 명확하지 않음
에이전트 간 결과물 형식(파일 경로, 데이터 구조)이 맞지 않음
병렬 에이전트가 동일 파일을 동시 수정해 충돌 발생
서브에이전트 디버깅
# 에이전트 실행 시 verbose 모드로 진행 상황 확인
claude --verbose
# 개별 에이전트에 명확한 출력 형식 지정 예시
# (Claude에게 직접 지시)
# "서브에이전트 A: src/utils.js 만 수정, 결과를 /tmp/agent-a-result.txt 에 기록"
# "서브에이전트 B: tests/ 디렉토리만 수정, A 완료 후 실행"
# 실패한 에이전트 작업 재시작
claude /resume # 이전 세션 재개
⚠️ 막히는 케이스: 병렬 에이전트가 같은 파일을 동시에 수정하면 나중에 저장된 내용이 앞의 내용을 덮어씁니다. Agent Teams 설계 시 에이전트별 작업 범위(파일/디렉토리)를 명시적으로 분리하고, 공유 상태는 별도 임시 파일로 전달하세요. 자세한 설계 패턴은 가이드 #13 — Agent Teams 실전 가이드를 참고하세요.
MCP 서버 연결 끊김
증상: MCP 도구를 호출하면 MCP server not responding 또는 Tool call failed: connection refused 에러가 발생합니다. Claude가 MCP 도구 목록을 인식하지 못하기도 합니다.
원인:
MCP 서버 프로세스가 종료되었거나 아직 시작되지 않음
설정 파일(.mcp.json 또는 ~/.claude/mcp.json)의 경로/포트가 잘못됨
MCP 서버가 필요한 환경변수를 받지 못함
진단 및 해결
MCP 연결 진단 및 재시작
# 현재 연결된 MCP 서버 목록 확인
claude mcp list
# 특정 MCP 서버 상태 확인
claude mcp get <server-name>
# MCP 서버 재시작
claude mcp restart <server-name>
# MCP 설정 파일 위치 확인
ls -la ~/.claude/mcp.json
cat ~/.claude/mcp.json
# MCP 서버 프로세스 직접 확인 (예: filesystem MCP)
ps aux | grep mcp
# 설정 파일 경로 오류 시 재등록
claude mcp add filesystem /path/to/mcp-filesystem-server
⚠️ 막히는 케이스: MCP 서버가 목록에는 있는데 도구 호출이 계속 실패한다면, 서버가 필요한 환경변수(예: API 토큰, DB 연결 문자열)를 받지 못한 것일 수 있습니다. .mcp.json의 env 블록에 필요한 변수가 모두 등록되었는지 확인하세요. MCP 연결 방법 전반은 가이드 #4 — MCP 서버 연결하기를 참고하세요.
Push 거부: remote에 로컬에 없는 커밋이 있음 (force push 필요 또는 pull 먼저)
Git 설정 없음: user.email / user.name 미설정으로 커밋 불가
Git 에러 진단 및 해결
# 현재 Git 상태 확인
git status
git log --oneline -5
# Merge conflict 해결 흐름
git status # conflict 파일 확인
# 파일 열어서 <<<<<<< / ======= / >>>>>>> 마커 해결
git add <resolved-file>
git commit
# Pre-commit hook 실패 시 원인 확인
cat .husky/pre-commit # Husky 사용 시
npm run lint # 직접 lint 실행
# Git user 설정 (커밋 불가 시)
git config user.email "you@example.com"
git config user.name "Your Name"
# Push 거부 시 (non-fast-forward)
git pull --rebase origin main # rebase로 정리 후 push
⚠️ 막히는 케이스: Claude에게 git push --force를 지시하면 remote의 다른 팀원 커밋이 삭제될 수 있습니다. force push 대신 반드시 git pull --rebase로 정리한 뒤 push하세요. 부득이하게 force push가 필요하다면 --force-with-lease를 사용해 예상치 못한 덮어쓰기를 방지하세요.
Claude Code 가이드 #20 — 런타임 에러 & 성능 트러블슈팅 — Git 에러 해결 프로세스 (출처: 공식 문서 기반)
메모리 / CPU 과부하
증상: Claude Code 실행 중 시스템이 전반적으로 느려지거나, 팬이 고속 회전하거나, 프로세스가 갑자기 종료됩니다. OOM Killed 로그가 남기도 합니다.
원인:
대용량 코드베이스를 한 번에 인덱싱
여러 서브에이전트가 동시에 메모리를 점유
Node.js 힙 메모리 한도 초과
시스템 RAM 부족 (8GB 이하에서 특히 빈번)
메모리/CPU 과부하 진단 및 완화
# 메모리 사용량 확인
free -h # Linux
vm_stat | grep Pages # macOS
# Claude Code 프로세스 자원 확인
ps aux | grep claude | awk '{print $3, $4, $11}'
# Node.js 힙 메모리 한도 조정
export NODE_OPTIONS="--max-old-space-size=4096" # 4GB 허용
claude
# 대용량 프로젝트에서 .claudeignore 활용
# .claudeignore 파일 생성
cat > .claudeignore << 'EOF'
node_modules/
dist/
build/
*.log
.git/
EOF
⚠️ 막히는 케이스:node_modules나 dist 디렉토리가 .claudeignore에 없으면 Claude가 수만 개의 파일을 스캔해 메모리를 급격히 소모합니다. 새 프로젝트를 시작할 때 반드시 .claudeignore를 먼저 설정하세요. 기존 .gitignore를 그대로 복사해 사용해도 충분합니다.
네트워크 에러 / API rate limit
증상:429 Too Many Requests, 529 Overloaded, 500 Internal Server Error 가 응답으로 돌아옵니다. 또는 완전히 연결이 끊겨 ECONNRESET / ENOTFOUND 에러가 발생합니다.
에러 코드별 원인 및 조치
에러 코드
원인
조치
429
분당 요청 한도 초과
잠시 대기 후 재시도, Max 플랜 고려
529
Anthropic 서버 과부하
status.anthropic.com 확인, 재시도
500
서버 내부 오류
프롬프트 단순화 후 재시도
ECONNRESET
연결 강제 종료
네트워크 확인, 프록시 설정 점검
ENOTFOUND
DNS 해석 실패
인터넷 연결 확인, DNS 설정 점검
rate limit 및 네트워크 에러 대응
# Anthropic 서비스 상태 확인
curl -s https://status.anthropic.com/api/v2/status.json | python3 -m json.tool
# DNS 해석 테스트
nslookup api.anthropic.com
dig api.anthropic.com
# 연결 테스트 (HTTP 헤더만)
curl -I --max-time 10 https://api.anthropic.com
# 현재 사용 중인 rate limit 확인 (Console 사용자)
# https://console.anthropic.com/settings/limits
# 자동 재시도 설정 (환경변수)
export CLAUDE_MAX_RETRIES=3
export CLAUDE_RETRY_DELAY=5000 # ms
⚠️ 막히는 케이스:429 에러가 자주 발생한다면 현재 구독 플랜의 rate limit에 도달한 것입니다. Pro 플랜은 분당 요청 수에 제한이 있으며, Max 플랜이나 Console(API)으로 전환하면 더 높은 한도가 적용됩니다. 단기적으로는 요청을 배치로 묶어 전송 빈도를 줄이거나, 컨텍스트를 압축해 요청 수 자체를 줄이는 것이 효과적입니다.
요약 및 관련 편
런타임 에러의 80%는 아래 세 가지 패턴에서 발생합니다.
컨텍스트 초과 — /clear 또는 새 세션 시작, .claudeignore 설정으로 예방
권한 또는 파일 시스템 문제 — ls -la로 권한 확인, chown/chmod로 해결
네트워크 / rate limit — status.anthropic.com 확인 후 재시도 또는 플랜 업그레이드
MCP, Agent Teams, Git 에러는 설정 파일과 작업 범위 분리로 대부분 해결됩니다.