VS Code에서 Microsoft Foundry와 함께 Opus 5.5 Claude Code 사용하기
요약
본 글은 VS Code 환경에서 Microsoft Foundry와 연동된 Claude Code를 사용하여 Opus 5.5 모델을 활용하는 방법을 다룹니다. 특히, 다른 모델과 비교하여 Opus 5.5가 가지는 비용 효율성, 기본 설정(medium effort), 항상 활성화되는 사고 기능 등의 주요 변경 사항들을 상세히 설명합니다.
핵심 포인트
- Opus 5.5는 이전 버전 대비 40% 저렴하며 캐시 읽기 비용이 중요함.
- 기본 노력 수준은 'medium'이며, 이는 세션별로 조정 가능함.
- 사고(Thinking) 기능은 항상 활성화되어 있으며, 별도의 토글이 없음.
- 출력 속도가 개선되었으며, 안전 분류기 적용으로 거절 사례가 늘어날 수 있음.
제 [Claude Opus 5.5 for C# developers] 게시물에서는 제가 직접 작성한 코드, 즉 Anthropic.Foundry SDK, Entra ID, 그리고 effort 매개변수를 사용하여 Opus 5.5를 호출했습니다. 이번에는 Opus 5.5를 호출하는 코드가 저의 것이 아닙니다. 제 Foundry 리소스를 가리키는 VS Code 터미널에서 실행되는 Claude Code입니다.
Microsoft에서는 이미 VS Code에서 Microsoft Foundry와 함께 Claude Code 설정에 대한 단계별 가이드가 있으므로, 저는 그것을 반복하지 않겠습니다. Claude Code를 Microsoft Foundry에 연결한 적이 없다면, 그 가이드부터 시작하세요. 이 게시물은 연결 후 무슨 일이 일어나는지, 즉 다른 쪽의 모델이 Opus 5.5일 때 어떻게 해야 하는지, 실제로 Opus 5.5와 대화하고 있는지 확인하는 방법, 어떤 다이얼을 돌려야 하는지, 그리고 눈을 돌렸을 때 토큰은 어디로 가는지에 관한 내용입니다.
Opus 5.5가 Claude Code 설정을 변경하는 이유
무엇이 출시되었고 각 변경 사항이 Claude Code 내에서 무엇을 의미하는지에 대한 간략한 요약:
- Opus 5보다 40% 저렴합니다. 입력은 $4/M, 출력은 $20/M, 캐시 읽기는 $0.20/M입니다. Claude Code 세션은 주로 재읽기 컨텍스트이므로, 헤드라인 가격보다 캐시 가격이 더 중요합니다.
medium정도의 노력이 기본값입니다. Claude Code는 이를 존중합니다: Opus 5.5는medium에서 시작하며, 대부분의 다른 모델은high에서 시작합니다. 세션별로 높일 수 있습니다.- 사고(Thinking) 기능이 항상 켜져 있습니다. 찾을 생각 토글이 없습니다. 노력(
effort)만이 유일한 다이얼이며, Opus 5.5에서는MAX_THINKING_TOKENS가 아무 효과가 없습니다. - 출력이 30% 이상 빠릅니다. 긴 diff에서 VS Code 패널에서 이를 느낄 수 있을 것입니다.
- 거절(Refusals)이 더 많습니다. 확장된 안전 분류기(
safety classifiers)는 Claude Code에서도 적용됩니다. 만약 귀하의 리포지토리가 보안 도구라면, 일부 거절을 예상해야 합니다.
문제는 이것입니다: Claude Code가 Opus 5.5를 사용하지 않는다면 이 모든 것은 중요하지 않습니다. 그리고 기본적으로 Foundry에서는 그렇지 않습니다.
간단한 설정 (그리고 대부분의 가이드가 놓치는 부분)

Claude Code CLI 설치
Foundry Model Catalog에서 Claude Opus 5.5를 Foundry 리소스에 배포합니다. 다른 모델과 마찬가지로 진행하면 됩니다. 해당 리소스에 Azure AI User 또는 Cognitive Services User 역할을 부여하세요 (둘 중 하나만으로도 모델 호출이 가능합니다). 그리고 az login을 실행합니다. API 키는 필요 없습니다: Claude Code는 키가 설정되지 않은 경우 Azure 자격 증명 체인(credential chain)을 사용하므로, az login 세션 자체가 자격 증명이 됩니다. 만약 API 키를 사용할 계획이라면, 환경 변수(env)나 JSON 파일에 ANTHROPIC_FOUNDRY_API_KEY를 설정해야 합니다.
VSCode 확장 프로그램 설치를 잊지 마세요

VSCode Claude
이제 제가 중요하게 생각하는 부분입니다. 환경 변수를 setx로 설정하거나 모든 셸에 붙여넣는 대신, ~/.claude/settings.json 파일에 넣으세요. CLI와 VS Code 확장 프로그램 모두 이 파일을 읽기 때문에, Foundry 설정을 한 번만 하면 됩니다:
{
"env": {
"CLAUDE_CODE_USE_FOUNDRY": "1",
...
두 모델 라인은 서로 다른 역할을 수행하며, 둘 다 필요합니다:
ANTHROPIC_MODEL: 세션의 모델을 Opus 5.5로 설정합니다. 이것은 대부분의 가이드가 놓치는 핵심입니다. Foundry에서 Claude Code의 기본 모델은 Sonnet 4.5이며, Opus가 아닙니다.ANTHROPIC_DEFAULT_OPUS_MODEL만 설정하면opus별칭(alias)이 재매핑되지만, 전환할 때까지는 계속 Sonnet으로 채팅하게 됩니다.ANTHROPIC_DEFAULT_OPUS_MODEL:opus별칭(예:/model, 서브 에이전트 정의 등에서 사용)이 이전에 배포하지 않았을 수 있는 구형 Opus가 아닌, 당신의 Opus 5.5 배포로 해결되도록 합니다.
만약 배포 이름이 claude-opus-5-5가 아니라면 실제 배포 이름을 사용하세요. ANTHROPIC_FOUNDRY_RESOURCE는 URL이 아닌 리소스 이름만 받습니다. 프라이빗 엔드포인트나 커스텀 도메인이 필요하면 대신 ANTHROPIC_FOUNDRY_BASE_URL을 사용하세요. 두 가지를 모두 설정하지 마세요.
VS Code에서 Claude Code 확장을 설치하고, Anthropic 로그인으로 유도되지 않도록 VS Code의 settings.json에 한 줄을 추가하세요:
{
"claudeCode.disableLoginPrompt": true
}
그런 다음 터미널이나 VS Code 패널에서 /status를 확인해 보세요.
API 제공업체가 Microsoft Foundry로 설정되어 있고, 리소스 이름과 모델로 당신의 Opus 5.5 배포가 표시되는지 확인해야 합니다. 만약 모델 라인에 Sonnet이 표시된다면, ANTHROPIC_MODEL 라인이 제대로 적용되지 않은 것입니다.
개발자 참고 사항: 'Foundry에 배포됨'과 'Claude Code에서 사용됨'은 서로 다른 개념입니다. /status는 어느 쪽을 가지고 있는지 알려주는 5초 체크입니다.
노력(Effort): 실제로 만지게 될 다이얼
SDK 게시물에서는 effort가 요청의 속성이었습니다. Claude Code에서는 세션 설정이며, 이를 설정하는 방법은 세 가지가 있습니다:
- **
/effort**는 현재 세션에 대해 설정합니다:/effort high,/effort low, 또는 모델 기본값으로 돌아가려면/effort auto를 사용하세요. /model선택기에는 노력(effort) 슬라이더(좌/우 화살표)가 있습니다. 여기서 선택한 값은 모델별로 기억되므로, Opus 5.5는 자체 설정을 유지할 수 있습니다.- 환경 변수 또는
env블록의 **CLAUDE_CODE_EFFORT_LEVEL**이/effort를 포함하여 다른 모든 것을 무시하고 우선합니다.
마지막 점은 실수하기 쉽습니다. 테스트하는 동안 설정에 CLAUDE_CODE_EFFORT_LEVEL을 넣고 잊어버린 다음, 나중에 /effort high가 아무 효과가 없는 것처럼 보일 수 있습니다. 대화형 작업의 경우, env var를 제외하고 /effort나 /model 슬라이더를 사용하세요. 환경 변수는 고정된 레벨을 원하는 스크립트 또는 CI 실행에 아껴두세요. (최상위 effortLevel 사용자 설정도 Opus 5.5에는 적용되지 않으므로, 모델별 슬라이더를 사용하는 것이 또 하나의 이유입니다.)
제가 이 레벨들을 Claude Code 작업에 매핑하는 방법은 다음과 같습니다:
| Effort | Claude Code에서 사용처 |
|---|---|
low | "이 파일 설명하기", 심볼 이름 바꾸기, 커밋 메시지 작성 |
| ... | |
| 생성된 토큰(Thinking tokens)은 출력으로 청구되며, 비용은 $20/M입니다. 하루 종일 높은 노력 수준을 유지하는 것은 비용이 들지만, 어려운 문제에만 높은 노력을 적용하고 다시 낮추는 것이 저렴합니다. |
Opus의 비용이 숨겨진 곳
모든 것을 Opus 5.5로 고정하는 것은 쉽습니다. 놀라운 점은 그 외에도 많은 부분이 Opus 5.5를 사용한다는 것입니다.
백그라운드 작업. Claude Code는 세션 제목 생성과 같은 작은 작업을 백그라운드에서 수행합니다. Anthropic API에서는 이 작업이 Haiku로 전송됩니다. Foundry에서는 기본 모델인 Opus 5.5를 사용하며, Haiku 모델을 배포하고 ANTHROPIC_DEFAULT_HAIKU_MODEL을 해당 모델로 지정하지 않는 한 그렇습니다.
서브 에이전트. Claude Code가 서브 에이전트로 확장될 때(예: 리포지토리를 검색하는 Explore agent), 각 에이전트는 달리 명시되지 않으면 메인 대화의 모델을 사용합니다. 즉, 파일 검색 전체에 Opus 5.5가 사용됩니다. 더 저렴한 모델을 배포했다면, 서브 에이전트를 해당 모델로 라우팅하세요:
{
"env": {
"CLAUDE_CODE_USE_FOUNDRY": "1",
...
다시 말하지만, 이들은 배포 이름이므로 사용자의 이름을 사용해야 합니다. Opus 5.5는 메인 대화에서 계획 및 편집을 수행하고, 더 저렴한 모델은 검색 및 읽기를 수행합니다.
실제로 배포한 모델만 참조하세요. Foundry에는 시작 모델 확인 기능이 없기 때문에, Claude Code가 실행될 때 오타나 누락된 배포에 대해 경고하지 않습니다. 세션 중간에 알게 됩니다. 이 게시물을 작성하는 동안, 제 자신의 세션에서 서브 에이전트가 다음과 같은 오류로 실패했습니다:
The model claude-sonnet-4-5 is not available on your foundry deployment.
이는 제가 가진 리소스에 없는 모델을 시도했기 때문입니다. 다른 모든 것은 계속 작동했고, 이것이 바로 놓치기 쉬운 이유입니다. 만약 Opus 5.5만 배포했다면, Sonnet과 Haiku 라인은 제외하고 모든 것이 Opus로 실행된다는 점을 받아들이세요.
개발자 요점: 하나의 배포를 사용하면 모든 토큰이 Opus 토큰이 됩니다. 이는 Opus 5가 Opus 5.5보다 저렴하기 때문에 괜찮을 수 있지만, 예상치 못한 일이 아니라 의사결정으로 만드세요.
$0.20 캐시 읽기 비용을 활용하세요
$0.20/M의 캐시 읽기는 Opus 5.5 가격표에서 가장 좋은 부분이며, Claude Code는 캐시를 많이 사용하는 작업입니다. 매 턴마다 사용자의 지침(CLAUDE.md)과 지금까지의 대화 내용을 다시 전송하기 때문입니다. 캐싱은 자동으로 활성화됩니다. 실제로 저렴한 읽기 비용을 얻게 될지 결정하는 세 가지 요소가 있습니다:
- Foundry의 기본 캐시 수명은 5분입니다. 커피 마시러 잠시 자리를 비웠다가 돌아오면, 다음 턴에서 전체 컨텍스트를 정액 요금으로 다시 작성합니다. 간헐적으로 긴 세션을 유지해야 한다면,
env블록에ENABLE_PROMPT_CACHING_1H를1로 설정하세요. 한 시간 캐시 _쓰기(write)_는 5분 쓰기보다 높은 요율로 청구되므로, 빠르고 짧은 세션보다는 길고 중단되는 세션에서 이점이 있습니다. (최근 Claude Code 버전에는 메인 대화에만 적용되는CLAUDE_CODE_PROMPT_CACHE_TTL=1h도 있습니다.) - 세션을 시작할 때 모델을 선택하고 그 모델을 유지하세요. 세션 중간에 Opus 5.5에서 Sonnet으로 갔다가 다시 돌아오면 캐시가 매번 사라집니다.
- 작업을 시작하기 전에 MCP 서버를 설정해 두세요. 일부 Azure 호스팅 배포판은 Claude Code의 도구 검색 기능을 거부하므로, 모든 MCP 도구를 미리 로드합니다. 그런 다음 세션 중간에 MCP 서버를 연결하거나 제거하면 캐시가 초기화됩니다.
이제 에디터에서 거절(Refusals)을 확인하세요
제가 SDK 게시물에서 거절 처리(refusal handling)를 필수 패턴으로 다룬 이유는, 거절이 답변 없이 성공적인 HTTP 응답이기 때문입니다. Claude Code에서는 이 핸들러를 직접 작성하지 않지만, 여전히 그 결과를 볼 수 있습니다. Opus 5.5는 생물학, 사이버 보안 및 추론 추출 범주에서 Opus 5보다 더 많은 요청을 거부합니다.
보안 도구(스캐너, 퍼저, 탐지 규칙)를 다룬다면, 자신에게는 합리적으로 보이는 요청에 대해 가끔 거절 응답을 받게 될 것입니다. 방어적인 컨텍스트로 요청을 재구성하거나, 해당 부분을 수동으로 처리하세요. 분류기(classifier)를 우회하려고 시도하지 마세요. 업무 리소스에서 그것은 프롬프트 트릭이 아니라 보안 팀과의 대화 주제입니다.
실제로 얼마를 지출했는지 확인하기
Claude Code 내에서 **/usage**를 실행하세요 (/cost는 별칭입니다). Foundry에서는 세션의 토큰 수, 프롬프트 캐시(prompt cache) 항목, 그리고 목록 가격으로 산정된 추정 달러 비용을 확인할 수 있습니다. 이 추정치는
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기