Claude Code 가이드 #20 설치와 인증은 통과했는데, 실제 작업 도중 에러가 터진다면. 컨텍스트 초과, 타임아웃, 파일 수정 실패, MCP 연결 끊김, Git 충돌, API rate limit까지 런타임에서 발생하는 모든 에러의 원인과 해결법을 케이스별로 정리했습니다. 런타임 에러는 크게 세 계층에서 발생합니다. 아래 순서대로 진단하면 빠르게 원인을 좁힐 수 있습니다.
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
🎓 유데미 강의 추천
Claude Code 실전 강의 — AI 코딩을 지금 시작하세요
설치부터 자동화·에이전트 활용까지, 실무에서 바로 쓰는 Claude Code 활용법을 단계별로 배울 수 있습니다.
증상: 작업 중간에 “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 에러는 설정 파일과 작업 범위 분리로 대부분 해결됩니다.
설치·인증은 됐는데 작업 도중 터지는 런타임 에러를 컨텍스트 초과, 타임아웃, 파일 권한, MCP 끊김, Git 충돌, 메모리·rate limit까지 증상별로 진단하는 글입니다. 핵심은 증상으로 계층을 좁히는 것입니다. 응답이 잘리면 토큰, 응답이 없으면 네트워크/API, 수정 실패면 파일 권한 계층입니다. 실제 사고의 80%는 컨텍스트 초과(/clear 또는 새 세션 + .claudeignore 예방), 파일 권한(ls -la 확인 후 chown/chmod), 네트워크·rate limit(status.anthropic.com 확인 후 재시도) 세 가지로 정리됩니다.
실무에서 처음 도입할 때 가장 먼저 확인할 것은 무엇인가요?
새 프로젝트에서 가장 먼저 해야 할 일은 .claudeignore를 설정하는 것입니다. node_modules, dist, build, .git을 제외하지 않으면 Claude가 수만 개 파일을 스캔하며 메모리를 급격히 소모합니다. 기존 .gitignore를 그대로 복사해 써도 충분합니다. 그다음 증상별 진단 순서를 익혀두세요. 응답이 잘리면 컨텍스트/토큰, 응답이 없으면 네트워크/API, 수정 실패면 파일 권한 계층입니다. MCP 도구를 쓴다면 claude mcp list로 연결 상태를 먼저 확인하고, .mcp.json의 env 블록에 서버가 필요로 하는 토큰이나 DB 연결 문자열이 모두 들어 있는지 점검하는 것이 도입 초기 핵심입니다.
가장 자주 발생하는 실수나 함정은 무엇인가요?
런타임에서 가장 사고가 큰 함정은 Claude에게 git push --force를 시키는 것입니다. remote에 있던 다른 팀원의 커밋이 통째로 삭제될 수 있으니, force push 대신 git pull --rebase로 정리한 뒤 push하고, 꼭 필요하면 --force-with-lease로 예상치 못한 덮어쓰기를 막으세요. 두 번째는 /clear로 컨텍스트를 비운 뒤 같은 대용량 파일을 또 통째로 첨부하는 것으로, 토큰이 즉시 다시 쌓여 컨텍스트 초과가 반복됩니다. 1000줄 넘는 파일은 필요한 함수나 블록만 잘라 붙이세요. 병렬 서브에이전트가 같은 파일을 동시에 수정해 나중 결과가 앞 내용을 덮어쓰는 것도 자주 발생하므로, 에이전트별 작업 범위를 파일 단위로 분리해야 합니다.
컨텍스트 초과를 만났을 때 어떤 대처가 상황별로 맞나요?
대처는 상황에 따라 다릅니다. 대화가 완전히 막혀 어떤 응답도 안 나오면 가장 확실한 건 세션을 종료하고 다시 시작하는 것입니다. 직전 작업 맥락을 살려야 하면 --continue로 이전 세션 요약을 이어받는 편이 낫습니다. 같은 세션에서 계속 진행하고 싶고 앞 대화가 더 필요 없다면 /clear로 컨텍스트만 리셋하면 됩니다. 다만 /clear 후에도 같은 대용량 파일을 또 통째로 첨부하면 토큰이 즉시 다시 쌓이므로, 1000줄 넘는 파일은 필요한 함수나 블록만 잘라 붙이세요. 애초에 반복되는 패턴이라면 CLAUDE.md에 auto-compact: true를 켜고 .claudeignore로 node_modules와 dist를 제외해 두는 예방이 가장 효과적입니다.
더 깊게 공부하려면 어떤 자료를 보면 좋을까요?
런타임 에러는 공식 트러블슈팅 문서와 Anthropic 서비스 상태 페이지(status.anthropic.com)를 짝으로 보는 게 좋습니다. 529나 500이 서버 측 문제인지 내 환경 문제인지를 상태 페이지가 바로 갈라 주거든요. 토큰을 근본적으로 줄이려면 가이드 #18(컨텍스트 & 토큰 최적화)에서 auto-compact와 Read tool의 offset/limit 활용을 보세요. 키워드로는 컨텍스트 윈도우 200K, NODE_OPTIONS max-old-space-size 힙 조정, .claudeignore, 그리고 git pull --rebase와 --force-with-lease를 검색하면 메모리·Git 충돌 같은 까다로운 케이스까지 손에 잡힙니다.