|

Claude Code 환경 변수 완전 가이드: AWS Bedrock 호환성 오류를 해결하는 단 1개의 설정

저자 주: Claude Code의 60개 이상 환경 변수 역할과 설정 방법을 자세히 알아봅니다. 특히 AWS Bedrock 등에서 발생하는 anthropic-beta 헤더 오류를 해결하기 위한 CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS 설정에 집중해 보겠습니다.

Claude Code를 사용하여 AWS Bedrock, Google Vertex AI 또는 기타 제3자 대규모 언어 모델(LLM) 게이트웨이에 연결할 때, "Unexpected value(s) for the anthropic-beta header"라는 오류를 한 번쯤 겪어보셨을 겁니다. 이 문제의 근본 원인은 Claude Code가 기본적으로 Anthropic API 전용 실험적 Beta 헤더를 전송하기 때문인데, AWS Bedrock과 같은 제3자 플랫폼은 이 헤더를 인식하지 못해 오류가 발생합니다.

해결 방법은 단 한 줄의 설정으로 충분합니다: CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1.

하지만 Claude Code의 환경 변수는 이외에도 매우 다양합니다. 공식 문서에는 인증 설정, 모델 선택, 성능 최적화, 기능 스위치 등 60개 이상의 환경 변수가 나열되어 있습니다. 이 글에서는 이러한 환경 변수들을 체계적으로 정리하여, Claude Code 사용 중 발생하는 다양한 설정 문제를 신속하게 해결할 수 있도록 도와드리겠습니다.

핵심 가치: 이 글을 읽고 나면 Claude Code 환경 변수의 전체 체계를 파악하여 AWS Bedrock/Vertex AI 호환성 문제를 신속하게 해결하고, 환경 변수를 통해 Claude Code의 사용 경험과 비용을 최적화하는 방법을 배우게 됩니다.

claude-code-environment-variables-complete-guide-ko 图示


Claude Code 환경 변수 핵심 요점

Claude Code의 60개 이상 환경 변수는 크게 6가지 범주로 나눌 수 있습니다. 다음은 가장 주의 깊게 살펴봐야 할 핵심 변수들입니다.

범주 핵심 변수 역할 주요 사용 시나리오
플랫폼 호환성 CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS anthropic-beta 실험적 헤더 비활성화 AWS Bedrock/Vertex AI 오류 해결
인증 설정 ANTHROPIC_API_KEY API 키 설정 제3자 API 플랫폼을 통한 모델 호출 시
모델 선택 ANTHROPIC_MODEL 사용할 모델 지정 특정 모델 버전으로 전환
성능 최적화 CLAUDE_CODE_MAX_OUTPUT_TOKENS 최대 출력 토큰 제어 긴 답변 제한을 통한 비용 절감
기능 스위치 DISABLE_PROMPT_CACHING 프롬프트 캐싱 비활성화 디버깅 또는 호환성 문제 해결 시
컨텍스트 관리 CLAUDE_AUTOCOMPACT_PCT_OVERRIDE 컨텍스트 자동 압축 임계값 제어 긴 대화 시 사용자 경험 최적화

Claude Code 환경 변수 설정의 두 가지 방법

방법 1: Shell 환경 변수 (임시 적용)

터미널에서 설정 후 Claude Code를 실행하며, 현재 세션에서만 유효합니다.

export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1
export ANTHROPIC_API_KEY="your-api-key"
claude

방법 2: settings.json 설정 (영구 적용)

~/.claude/settings.json 파일의 env 필드에 구성하면 실행 시마다 자동으로 로드됩니다.

{
  "env": {
    "CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1",
    "ANTHROPIC_API_KEY": "your-api-key"
  }
}

🎯 추천 방식: API 키나 플랫폼 호환성 수정과 같이 장기적으로 적용해야 하는 설정은 settings.json 방식을 사용하는 것이 좋습니다. 매번 수동으로 export할 필요가 없으니까요. 만약 APIYI(apiyi.com)와 같은 제3자 플랫폼의 API 키를 사용하신다면, 여기서 동일하게 설정하시면 됩니다.

claude-code-environment-variables-complete-guide-ko 图示


Claude Code 환경 변수 중점 해설: AWS Bedrock 호환성 문제 해결하기

CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS 상세 설명

이 설정은 이번 가이드의 핵심입니다. AWS Bedrock, Google Vertex AI, LiteLLM 등 제3자 게이트웨이를 통해 Claude Code를 사용할 때, Claude Code는 요청 헤더에 Anthropic의 실험적 베타(Beta) 식별자를 자동으로 추가합니다. 예를 들면 다음과 같습니다:

anthropic-beta: prompt-caching-scope-2026-01-05,advanced-tool-use-2025-11-20

이러한 베타 식별자는 Anthropic 직결 API 전용 기능이라서, AWS Bedrock 같은 제3자 플랫폼에서는 이를 인식하지 못하고 다음과 같은 오류를 반환하게 됩니다:

Error: Unexpected value(s) for the anthropic-beta header

해결 방법:

# 방법 1: Shell 명령어
export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1

# 방법 2: settings.json 설정
{
  "env": {
    "CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1"
  }
}

이 값을 1로 설정하면 Claude Code가 더 이상 실험적 베타 헤더를 보내지 않으므로, 모든 제3자 플랫폼과 원활하게 호환됩니다.

알려진 문제 및 임시 해결책

GitHub Issues 기록에 따르면, 일부 Claude Code 버전(2.1.18 이후)에서 해당 환경 변수가 완전히 적용되지 않는 버그가 있습니다. CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1을 설정했음에도 불구하고 advanced-tool-use-2025-11-20과 같은 새로운 베타 헤더가 여전히 전송되는 경우가 발생할 수 있습니다.

여전히 문제가 발생한다면 다음 추가 조치를 시도해 보세요:

  • Claude Code 버전 다운그레이드: 2.1.68 등 안정성이 확인된 버전으로 되돌립니다.
  • LiteLLM 게이트웨이 사용: LiteLLM은 anthropic_beta_headers_config.json 설정 파일을 통해 어떤 베타 헤더를 전달할지 세밀하게 제어할 수 있는 기능을 제공합니다.
  • DISABLE_PROMPT_CACHING 함께 설정: 프롬프트 캐싱을 비활성화하면 prompt-caching-scope 관련 베타 헤더가 생성되는 것을 방지할 수 있습니다.
# 전체 호환성 설정
export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1
export DISABLE_PROMPT_CACHING=1

Claude Code 환경 변수 전체 카테고리 요약

1. 인증 및 API 설정

가장 기본적이면서 자주 사용되는 환경 변수들로, Claude Code가 API 서비스에 연결되는 방식을 제어합니다.

변수명 역할 사용 시나리오
ANTHROPIC_API_KEY API 키, X-Api-Key 헤더로 전송됨 제3자 API 플랫폼(예: APIYI apiyi.com) 사용 시
ANTHROPIC_AUTH_TOKEN 사용자 정의 Authorization 헤더 값 (Bearer 접두사 자동 추가) 커스텀 인증 체계 사용 시
ANTHROPIC_CUSTOM_HEADERS 사용자 정의 요청 헤더 추가 (Name: Value 형식) 추가 헤더가 필요한 게이트웨이 사용 시
ANTHROPIC_BASE_URL 사용자 정의 API 엔드포인트 주소 제3자 API 중계 서비스 연결 시
CLAUDE_CODE_CLIENT_CERT mTLS 클라이언트 인증서 경로 기업용 보안 인증 시
CLAUDE_CODE_CLIENT_KEY mTLS 개인키 경로 기업용 보안 인증 시

🎯 제3자 플랫폼 사용자 주의사항: APIYI(apiyi.com)와 같은 제3자 API 플랫폼을 사용할 때는 ANTHROPIC_API_KEYANTHROPIC_BASE_URL을 동시에 설정해야 합니다. Claude Code는 Anthropic 구독 계정에 로그인되어 있더라도 환경 변수에 설정된 API 키를 우선적으로 사용합니다.

2. 모델 선택 및 설정

Claude Code가 사용할 모델과 모델의 동작 파라미터를 제어합니다.

변수명 역할 기본값
ANTHROPIC_MODEL 주 모델 이름 지정 Claude Sonnet 4.6
ANTHROPIC_DEFAULT_OPUS_MODEL Opus급 모델 지정 Claude Opus 4.6
ANTHROPIC_DEFAULT_SONNET_MODEL Sonnet급 모델 지정 Claude Sonnet 4.6
ANTHROPIC_DEFAULT_HAIKU_MODEL Haiku급 모델 지정 (백그라운드 작업용) Claude Haiku 4.5
CLAUDE_CODE_SUBAGENT_MODEL 서브 에이전트가 사용하는 모델 주 모델 설정을 상속함
CLAUDE_CODE_MAX_OUTPUT_TOKENS 최대 출력 토큰 수 32,000 (최대 64,000)
CLAUDE_CODE_EFFORT_LEVEL 추론 깊이 (low/medium/high/max/auto) auto

3. 플랫폼 호환성 및 게이트웨이 설정

Claude Code와 다양한 클라우드 플랫폼 및 LLM 게이트웨이 간의 호환성 문제를 해결하기 위한 변수들입니다.

변수명 역할 적용 플랫폼
CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS 실험적 베타 헤더 비활성화 AWS Bedrock / Vertex AI / 제3자 게이트웨이
CLAUDE_CODE_USE_BEDROCK AWS Bedrock 모드 활성화 AWS Bedrock
CLAUDE_CODE_SKIP_BEDROCK_AUTH AWS 인증 건너뛰기 (게이트웨이 사용 시) LLM 게이트웨이 + Bedrock
CLAUDE_CODE_USE_FOUNDRY Microsoft Foundry 모드 활성화 Azure AI
CLAUDE_CODE_SKIP_FOUNDRY_AUTH Azure 인증 건너뛰기 LLM 게이트웨이 + Azure
CLAUDE_CODE_SKIP_VERTEX_AUTH Google Vertex 인증 건너뛰기 LLM 게이트웨이 + Vertex
ANTHROPIC_FOUNDRY_BASE_URL Foundry 리소스의 기본 URL Microsoft Foundry
ANTHROPIC_FOUNDRY_API_KEY Foundry API 키 Microsoft Foundry
ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION Haiku 모델의 AWS 리전 Bedrock 멀티 리전

4. 기능 스위치

DISABLE_ 또는 CLAUDE_CODE_DISABLE_ 접두사가 붙은 변수를 통해 특정 기능을 끌 수 있습니다.

변수명 1로 설정 시 효과
DISABLE_PROMPT_CACHING 프롬프트 캐싱 비활성화
DISABLE_AUTOUPDATER 자동 업데이트 비활성화
DISABLE_TELEMETRY 텔레메트리 데이터 수집 비활성화
DISABLE_ERROR_REPORTING 오류 보고 비활성화
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC 위의 모든 불필요한 트래픽 일괄 비활성화
CLAUDE_CODE_DISABLE_AUTO_MEMORY 자동 기억 기능 비활성화
CLAUDE_CODE_DISABLE_1M_CONTEXT 100만 토큰 컨텍스트 윈도우 비활성화
CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING 자가 적응형 추론 비활성화
CLAUDE_CODE_DISABLE_FAST_MODE 패스트 모드 비활성화
CLAUDE_CODE_DISABLE_BACKGROUND_TASKS 백그라운드 작업 기능 비활성화
CLAUDE_CODE_DISABLE_CRON 예약 작업(Cron) 비활성화
CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS 내장 Git 지침 제거

5. 컨텍스트 및 성능 관리

Claude Code가 컨텍스트 윈도우를 관리하고 리소스를 사용하는 방식을 제어합니다.

변수명 역할 기본값
CLAUDE_AUTOCOMPACT_PCT_OVERRIDE 자동 압축 트리거 백분율 95%
CLAUDE_CODE_AUTO_COMPACT_WINDOW 압축 계산에 사용되는 토큰 윈도우 크기 모델 컨텍스트 윈도우
CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS 파일 읽기 최대 토큰 기본값 적용
CLAUDE_CODE_API_KEY_HELPER_TTL_MS 자격 증명 갱신 간격 (밀리초)
CLAUDE_CODE_TMPDIR 임시 파일 디렉토리 /tmp (Unix 기준)
CLAUDE_CODE_SHELL 사용할 Shell 지정 자동 감지

🎯 성능 최적화 팁: 긴 대화 중에 Claude Code가 컨텍스트를 너무 자주 압축한다고 느껴진다면, CLAUDE_AUTOCOMPACT_PCT_OVERRIDE를 더 낮은 값(예: 50)으로 설정해 보세요. 압축이 더 일찍 트리거되어 정보 손실을 줄일 수 있습니다. APIYI(apiyi.com)를 통해 호출할 때도 이러한 환경 변수 설정이 모두 지원됩니다.

claude-code-environment-variables-complete-guide-ko 图示


Claude Code 환경 변수 설정 가이드

초간단 예시: Claude Code를 제3자 API 플랫폼에 연결하기

# 터미널에서 환경 변수를 설정한 후 Claude Code를 실행하세요.
export ANTHROPIC_API_KEY="sk-your-api-key"
export ANTHROPIC_BASE_URL="https://vip.apiyi.com/v1"
export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1
claude

전체 settings.json 설정 템플릿 보기 (AWS Bedrock 호환 설정 포함)
{
  "env": {
    "ANTHROPIC_API_KEY": "sk-your-api-key",
    "ANTHROPIC_BASE_URL": "https://vip.apiyi.com/v1",
    "CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1",
    "CLAUDE_CODE_MAX_OUTPUT_TOKENS": "32000",
    "CLAUDE_AUTOCOMPACT_PCT_OVERRIDE": "80",
    "DISABLE_TELEMETRY": "1"
  },
  "permissions": {
    "allow": ["Read", "Glob", "Grep"],
    "deny": []
  }
}

AWS Bedrock 전용 설정:

{
  "env": {
    "CLAUDE_CODE_USE_BEDROCK": "1",
    "CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1",
    "DISABLE_PROMPT_CACHING": "1",
    "ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION": "us-east-1"
  }
}

Microsoft Foundry 전용 설정:

{
  "env": {
    "CLAUDE_CODE_USE_FOUNDRY": "1",
    "ANTHROPIC_FOUNDRY_BASE_URL": "https://my-resource.services.ai.azure.com/anthropic",
    "ANTHROPIC_FOUNDRY_API_KEY": "your-foundry-key",
    "CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1"
  }
}

: AWS Bedrock이나 Azure의 복잡한 설정이 번거롭다면, **APIYI(apiyi.com)**를 통해 Claude 전체 모델을 바로 사용해 보세요. API 키와 Base URL 두 가지만 설정하면 되므로 클라우드 플랫폼 인증이나 호환성 문제를 신경 쓸 필요가 없습니다.


자주 묻는 질문 (FAQ)

Q1: CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1을 설정했는데도 anthropic-beta 헤더 오류가 발생하면 어떻게 하나요?

이것은 Claude Code의 알려진 버그입니다(GitHub Issue #22893, #20031). 일부 최신 버전에서 새로운 베타 헤더가 도입되면서 환경 변수가 이를 완벽하게 차단하지 못하는 경우가 있습니다. 해결 방법은 다음과 같습니다:

  1. 2.1.68 등 이미 검증된 안정적인 버전으로 다운그레이드합니다.
  2. DISABLE_PROMPT_CACHING=1을 함께 설정하여 캐싱 관련 헤더를 비활성화합니다.
  3. LiteLLM 게이트웨이를 사용 중이라면 anthropic_beta_headers_config.json을 구성하여 세부 필터링을 수행합니다.
  4. Bedrock 직결 시 발생하는 헤더 문제를 피하기 위해 호환성이 더 좋은 **APIYI(apiyi.com)**와 같은 제3자 플랫폼을 사용합니다.

Q2: ANTHROPIC_API_KEY 환경 변수와 /login 로그인의 우선순위는 어떻게 되나요?

환경 변수에 설정된 API 키가 /login을 통한 구독 인증보다 우선순위가 높습니다. ANTHROPIC_API_KEY 환경 변수를 설정하면, Claude Pro/Team 구독으로 로그인되어 있더라도 Claude Code는 환경 변수의 키를 사용하여 API 사용량에 따라 비용을 청구합니다. 만약 APIYI(apiyi.com)에서 발급받은 키를 사용한다면, 비용은 해당 플랫폼을 통해 결제됩니다.

Q3: 현재 Claude Code에 적용된 환경 변수 설정을 어떻게 확인하나요?

Claude Code 대화 모드에서 /config 명령어를 실행하면 환경 변수, settings.json 설정 및 기본값을 포함한 모든 설정 항목의 현재 상태를 확인할 수 있습니다. 또는 터미널에서 env | grep -E "CLAUDE|ANTHROPIC|DISABLE" 명령어를 실행하여 설정된 관련 환경 변수를 직접 확인할 수도 있습니다.


요약

Claude Code 환경 변수의 핵심 요점은 다음과 같습니다.

  1. AWS Bedrock 오류 해결: CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1을 설정하여 실험적 Beta 헤더를 비활성화하세요. 이 설정 한 줄로 「Unexpected value(s) for the anthropic-beta header」 오류를 해결할 수 있습니다.
  2. 60개 이상의 환경 변수를 6대 카테고리로 분류: 인증 설정, 모델 선택, 플랫폼 호환성, 기능 스위치, 컨텍스트 관리, 기타 설정으로 나뉩니다.
  3. 두 가지 설정 방식: Shell export(임시)와 settings.json(영구) 방식이 있으며, 설정을 유지하려면 settings.json에 작성하는 것을 추천합니다.
  4. API 중계 서비스를 통한 간소화: APIYI(apiyi.com)와 같은 통합 API 플랫폼을 이용하면 ANTHROPIC_API_KEYANTHROPIC_BASE_URL 두 가지 변수만 설정하면 됩니다. 복잡한 클라우드 플랫폼 인증이나 Beta 헤더 호환성 문제를 신경 쓸 필요가 없습니다.

AWS Bedrock이나 Vertex AI 설정 시 발생하는 각종 호환성 문제를 피하고 싶다면, APIYI(apiyi.com)를 통해 Claude Code를 빠르게 연결해 보시는 것을 추천합니다. 플랫폼에서 제공하는 무료 크레딧과 통합 인터페이스를 활용해 보세요.


📚 참고 자료

  1. Claude Code 공식 문서 – 환경 변수: 전체 환경 변수 목록 및 설명

    • 링크: code.claude.com/docs/en/env-vars
    • 설명: 60개 이상의 모든 환경 변수에 대한 공식 레퍼런스입니다.
  2. Claude Code 공식 문서 – 설정: 설정 범위 및 settings.json 규격

    • 링크: code.claude.com/docs/en/settings
    • 설명: Managed/User/Project/Local 4단계 설정 체계를 이해할 수 있습니다.
  3. Claude Code 공식 문서 – Amazon Bedrock: AWS Bedrock 통합 가이드

    • 링크: code.claude.com/docs/en/amazon-bedrock
    • 설명: Bedrock 전용 설정 및 일반적인 문제 해결 방법을 다룹니다.
  4. GitHub Issue #22893 – DISABLE_EXPERIMENTAL_BETAS 미적용 문제: 커뮤니티 버그 보고

    • 링크: github.com/anthropics/claude-code/issues/22893
    • 설명: 해당 환경 변수의 알려진 제한 사항과 임시 해결 방법을 확인할 수 있습니다.
  5. LiteLLM – Claude Code Beta Headers 관리: 게이트웨이 계층의 Beta 헤더 필터링 방안

    • 링크: docs.litellm.ai/docs/tutorials/claude_code_beta_headers
    • 설명: LiteLLM 게이트웨이 사용 시 세밀한 Beta 헤더 제어 방법을 설명합니다.

작성자: APIYI 기술 팀
기술 교류: 댓글 창에서 Claude Code 설정 경험을 함께 공유해 주세요. 더 많은 사용 튜토리얼은 APIYI docs.apiyi.com 문서 센터에서 확인하실 수 있습니다.

Similar Posts