「'설치는 됐는데 실행이 안 된다'——Claude Code 사용자들에게서 가장 많이 들리는 말이며, 대부분의 오류는 동일한 원인들 중 하나에 해당합니다.」이 가이드에서는 5가지 자주 발생하는 오류를 하나씩 분해합니다. 오류 메시지 원문 → 근본 원인 → 바로 복사해서 사용할 수 있는 수정 명령어 순으로 정리하고, 마지막에 진단 플로우차트를 통해 10분 이내에 문제를 해결할 수 있도록 안내합니다.
오류 1: API 키 오류 또는 미설정
초보자들이 가장 먼저 겪는 문제입니다. Claude Code는 환경변수 ANTHROPIC_API_KEY로 인증을 처리하며, 키가 없거나 형식이 잘못되면 즉시 오류가 발생합니다.
발생하는 오류 메시지:
# 아래 세 가지 중 하나가 표시되면 API 키 문제입니다 Error: ANTHROPIC_API_KEY is not set AuthenticationError: 401 {"type":"error","error":{"type":"authentication_error","message":"invalid x-api-key"}} Error: Your API key is invalid.
수정 명령어:
# 1. 현재 셸에 키가 설정되어 있는지 확인 echo $ANTHROPIC_API_KEY # 2. 임시 설정 (현재 세션에만 적용) export ANTHROPIC_API_KEY="sk-ant-api03-xxxxxxxxxx" # 3. 설정 파일에 영구 저장 (zsh: ~/.zshrc, bash: ~/.bashrc) echo 'export ANTHROPIC_API_KEY="sk-ant-api03-xxxxxxxxxx"' >> ~/.zshrc source ~/.zshrc # 4. 형식 확인: sk-ant-api로 시작해야 함 claude --version
API 키 발급 방법
API 키는 console.anthropic.com → API Keys 페이지에서 생성합니다. 키는 생성 시 한 번만 표시되므로 즉시 복사해 보관하세요. 분실한 경우 새로운 키를 발급받아야 합니다.
오류 2: Node.js 버전 불일치
Claude Code는 Node.js 18 이상이 필요합니다. 낮은 버전에서는 설치나 시작 시 구문 오류가 발생합니다.
발생하는 오류 메시지:
SyntaxError: Unexpected token '?' engine "node" is incompatible with this module. Expected version ">=18". Got "16.x.x" Error [ERR_REQUIRE_ESM]: require() of ES Module ... not supported.
수정 명령어:
# 1. 현재 Node 버전 확인 node -v # 2a. nvm으로 버전 전환 (권장) nvm install 22 nvm use 22 nvm alias default 22 # 2b. macOS Homebrew 사용 시 brew install node@22 brew link --overwrite node@22 # 3. Node 업그레이드 후 Claude Code 재설치 npm uninstall -g @anthropic-ai/claude-code npm install -g @anthropic-ai/claude-code
Linux 서버의 흔한 함정
Ubuntu/Debian의 apt 기본 저장소에는 Node.js v12 또는 v16이 포함된 경우가 많습니다. apt install nodejs 대신 NodeSource 또는 nvm을 통해 설치하세요.
오류 3: 권한 거부 (Permission Denied)
권한 오류는 두 가지 형태로 나타납니다: npm 글로벌 설치 권한 부족과 Claude Code 런타임 도구 실행이 시스템 또는 사용자 정책에 의해 차단되는 경우입니다.
발생하는 오류 메시지:
npm ERR! Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules' Error: Permission denied (tool: bash) EPERM: operation not permitted, unlink
npm 설치 권한 수정:
# 글로벌 패키지 디렉토리를 홈 디렉토리로 변경 (sudo 불필요) mkdir -p ~/.npm-global npm config set prefix '~/.npm-global' echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.zshrc source ~/.zshrc npm install -g @anthropic-ai/claude-code
도구 권한 수정 (Claude Code 정책에 의한 bash/파일시스템 차단):
# 도구를 명시적으로 허용하여 실행 claude --allowedTools "bash,read,write,edit" # 또는 CLAUDE.md에서 설정 (프로젝트 수준 영구 설정) # CI 서버에서는 --dangerously-skip-permissions로 대화형 확인 건너뛰기 # 주의: 신뢰할 수 있는 환경에서만 사용 claude --dangerously-skip-permissions -p "your prompt here"
오류 4: 네트워크 타임아웃 또는 프록시 문제
Claude Code는 api.anthropic.com에 접근해야 합니다. 기업 인트라넷, 프록시 환경, 또는 특정 클라우드 리전에서는 연결 타임아웃이나 TLS 핸드셰이크 오류가 발생합니다.
발생하는 오류 메시지:
FetchError: request to https://api.anthropic.com/v1/messages failed, reason: connect ETIMEDOUT Error: Network request failed: ENOTFOUND api.anthropic.com ProxyError: tunneling socket could not be established, cause=connect ECONNREFUSED
수정 명령어:
# 1. 직접 연결 테스트 curl -v https://api.anthropic.com/v1/messages -H "x-api-key: $ANTHROPIC_API_KEY" \ -H "anthropic-version: 2023-06-01" -H "content-type: application/json" \ -d '{"model":"claude-opus-4-5","max_tokens":10,"messages":[{"role":"user","content":"hi"}]}' # 2. HTTP 프록시 설정 export HTTPS_PROXY="http://proxy.company.com:8080" export HTTP_PROXY="http://proxy.company.com:8080" export NO_PROXY="localhost,127.0.0.1" # 3. 인증이 필요한 프록시 export HTTPS_PROXY="http://username:password@proxy.company.com:8080" # 4. 커스텀 베이스 URL (기업 내부 게이트웨이) export ANTHROPIC_BASE_URL="https://your-internal-gateway.company.com"
macOS 시스템 프록시 주의사항
macOS 시스템 환경설정의 프록시 설정은 Node.js 프로세스에 자동으로 적용되지 않습니다. Claude Code를 실행하는 셸 세션에서 HTTPS_PROXY 환경변수를 명시적으로 설정하거나 ~/.zshrc에 영구적으로 추가해야 합니다.
오류 5: 메모리 부족으로 인한 프로세스 충돌
대규모 코드베이스나 긴 대화를 처리할 때 Claude Code가 Node.js 힙 메모리를 소진할 수 있습니다. 이 오류는 RAM이 8GB인 장치나 메모리가 제한된 CI 컨테이너에서 가장 자주 발생합니다.
발생하는 오류 메시지:
FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory Killed (signal 9) ← Linux OOM Killer에 의한 강제 종료 RangeError: Maximum call stack size exceeded
수정 명령어:
# 1. Node.js 힙 메모리 한도 증가 (MB 단위) export NODE_OPTIONS="--max-old-space-size=4096" claude # 2. 현재 메모리 사용량 확인 free -h # Linux vm_stat # macOS # 3. 대규모 코드베이스용 .claudeignore 생성 # node_modules/ # dist/ # .next/ # *.lock # 4. 긴 대화에서 /clear로 컨텍스트 초기화
| 시스템 RAM | 권장 --max-old-space-size |
비고 |
|---|---|---|
| 8 GB | 2048 | 시스템 및 다른 프로세스용으로 약 6GB 확보 |
| 16 GB | 4096 | 중간 규모 코드베이스에 적합 |
| 24 GB (M4 Mac mini 기본) | 8192 | 대형 모노레포 처리 가능 |
| 32 GB 이상 | 16384 | 기업급 프로젝트 / 병렬 인스턴스 |
진단 플로우차트: 10분 안에 근본 원인 찾기
키워드 빠른 참조
api-key/401→ 오류 1SyntaxError/ESM→ 오류 2EACCES/permission→ 오류 3ETIMEDOUT/ENOTFOUND→ 오류 4heap out of memory/Killed→ 오류 5
아직 해결되지 않나요?
- Node 버전 ≥ 18 확인 (
node -v) - 키가
sk-ant-api로 시작하는지 확인 curl로 api.anthropic.com 접근 가능한지 확인sudo npm install -g를 사용하지 않았는지 확인
추가 팁: 서버에서 Claude Code를 더 안정적으로 운영하기
CI 서버나 클라우드 호스트에서 Claude Code를 장기적으로 운영할 때, 위의 5가지 오류 수정 외에도 몇 가지 추가 사항이 안정성에 큰 차이를 만듭니다:
tmux또는screen사용 — SSH 연결이 끊어져도 프로세스 유지CLAUDE.md활용 — 프로젝트 규칙을 작성해 토큰 소비 절감--output-format json설정 — 자동화 스크립트에서 응답 파싱이 쉬워짐direnv로 환경변수 관리 — 프로젝트 디렉토리 진입 시 자동 로드
전용 macOS 서버에서 대부분의 오류가 사라집니다
충분한 메모리 (16~24GB 통합 메모리), 직접 네트워크 연결, 프록시 불필요——이것이 Claude Code의 OOM과 타임아웃 오류 대부분이 사라지는 근본적인 이유입니다. ZavCloud의 Mac mini M4 전용 인스턴스는 Node.js 환경이 사전 설치되어 있어 즉시 배포할 수 있습니다.
ZavCloud Cloud Mac
전용 macOS 서버에서 Claude Code 실행하기
Mac mini M4 전용 인스턴스: 24GB 통합 메모리, 1Gbps 직접 연결, 실제 macOS 환경 — OOM과 네트워크 타임아웃에서 해방되어 코딩에 집중하세요.
Cloud Mac 플랜 보기