클로드 코드의 언어 모델 선택과 추론 강도 조절
클로드 코드로 작업하다 보면 가끔 이런 상황이 생깁니다. 오타 하나 고치려고 했는데 Opus가 코드베이스 전체를 분석하느라 30초를 기다린다거나, 반대로 복잡한 아키텍처 리팩토링을 맡겼는데 Haiku가 피상적인 답만 내놓는 경우요. 두 경우 모두 언어 모델과 추론 강도가 작업에 맞지 않아서 생기는 문제인데요.
클로드 코드에서 언어 모델과 추론 강도는 모든 상호작용의 품질과 속도에 가장 직접적으로 영향을 주는 설정입니다. 이 글에서는 어떤 언어 모델과 추론 강도 조합이 어떤 작업에 적합한지 그리고 상황에 따라 전환하는 방법을 하나씩 살펴보겠습니다.
언어 모델과 추론 강도가 왜 중요한가
클로드 코드는 단일 속도로 동작하는 도구가 아닙니다. 언어 모델과 추론 강도라는 두 개의 조절 장치가 있어서 AI의 동작 방식을 작업에 맞게 바꿀 수 있어요.
언어 모델은 AI 능력의 천장을 결정합니다. Opus는 가장 깊은 추론이 가능하고 Haiku는 가장 빠르게 응답하죠. 추론 강도(effort level)는 그 천장을 한 번의 응답에서 얼마나 활용할지를 정합니다. 같은 Opus라도 추론 강도가 low면 간결하게 답하고 max면 가능한 한 깊이 분석해요.
자동차에 비유하면 언어 모델은 엔진 종류(경차, 세단, 스포츠카)이고 추론 강도는 가속 페달을 밟는 정도입니다. 스포츠카(Opus)로 주차장에서 서행할 수도 있고 경차(Haiku)로 고속도로에서 한계까지 밟을 수도 있지만 둘 다 비효율적이잖아요. 엔진과 속도를 상황에 맞추는 게 핵심입니다.
세 가지 언어 모델 비교
클로드 코드에서 사용할 수 있는 언어 모델은 세 가지입니다.
| Opus 4.6 | Sonnet 4.6 | Haiku 4.5 | |
|---|---|---|---|
| 별칭 | opus | sonnet | haiku |
| 강점 | 가장 깊은 추론, 복잡한 분석 | 균형 잡힌 속도와 품질 | 빠른 응답, 낮은 비용 |
| 기본 추론 강도 | medium | high | 미지원 |
| 적합한 작업 | 대규모 리팩토링, 보안 감사, 아키텍처 설계 | 일상 코딩, 코드 리뷰, 기능 구현 | 코드베이스 탐색, 간단한 질문, 포맷팅 |
| 사용 가능 플랜 | Max | 모든 플랜 | 모든 플랜 |
언어 모델별 기본 추론 강도가 다른 건 의도적입니다. Opus는 이미 능력이 충분하기 때문에 medium으로도 대부분의 작업을 잘 처리해요. 굳이 높은 추론 강도로 토큰을 쓸 필요가 없는 거죠. 반면 Sonnet은 high가 기본인데 이건 Opus보다 약간 낮은 추론 능력을 더 많은 사고 시간으로 보상하는 전략입니다.
Haiku는 추론 강도를 아예 지원하지 않습니다. 속도와 비용 효율에 특화된 언어 모델이라 확장 사고 같은 기능이 필요 없거든요. 빌트인 Explore 에이전트가 Haiku를 쓰는 것도 이런 이유입니다. 파일을 찾고 코드를 읽는 작업에 깊은 추론은 과합니다.
추론 강도 이해하기
추론 강도는 Claude가 한 번의 응답에 얼마나 많은 자원을 쏟을지 결정합니다. 단순히 생각하는 시간만 달라지는 게 아니라 도구 호출 횟수, 응답 길이, 설명의 상세함까지 전부 바뀌어요.
| 추론 강도 | 사고 깊이 | 도구 호출 | 응답 상세도 | 속도 |
|---|---|---|---|---|
low | 최소한의 사고 | 적음 | 핵심만 간결하게 | 가장 빠름 |
medium | 적절한 수준 | 균형 | 필요한 만큼 | 빠름 |
high | 확장 사고 | 꼼꼼하게 | 상세한 설명 | 보통 |
max | 깊은 확장 사고 | 가장 철저 | 빠짐없이 포괄적 | 가장 느림 |
이 차이를 체감하기 쉬운 예시를 들어보면요. “이 함수가 뭐 하는 거야?”라는 질문에 low는 한두 줄로 바로 답하고 medium은 파일을 열어서 코드를 읽은 다음 답합니다. high로 올리면 호출하는 쪽 코드까지 살펴보면서 맥락을 포함해서 설명하고요. max에서는 관련 테스트 파일, 타입 정의, 사용 패턴까지 훑어서 포괄적인 분석을 내놓습니다.
프롬프트로 사고 깊이 올리기
추론 강도를 설정에서 바꾸지 않고도 특정 요청에서만 Claude의 사고 깊이를 올리는 방법이 있습니다. 프롬프트에 thinking 키워드를 넣으면 해당 턴에서만 확장 사고가 활성화돼요.
이 함수의 시간 복잡도를 분석해줘. ultrathink.
이 PR의 보안 이슈를 검토해줘. think harder.
키워드는 네 단계로 나뉩니다. think는 기본적인 확장 사고를 켜고 think hard는 더 깊이, think harder는 한층 더 깊이, ultrathink는 최대 수준의 사고를 유도합니다.
핵심적인 차이는 추론 강도 설정은 세션 전체에 영구적으로 적용되지만 thinking 키워드는 해당 프롬프트 한 턴에만 적용된다는 점이에요. 이 덕분에 추론 강도를 medium으로 유지하면서 정말 깊은 분석이 필요한 순간에만 ultrathink를 붙여서 토큰을 아끼며 쓸 수 있습니다.
여기서 계획 모드와의 차이도 알아두면 좋습니다. 계획 모드는 너비(breadth)에 집중합니다. 코드베이스를 넓게 탐색하고 여러 파일을 살펴보면서 전체 구조를 파악한 뒤 실행 계획을 세우는 거죠. 반면 thinking 키워드는 깊이(depth)에 집중합니다. 하나의 문제를 깊이 파고들어서 복잡한 알고리즘을 분석하거나 엣지 케이스를 도출하는 식입니다.
둘은 배타적이지 않아서 함께 쓸 수도 있어요. Shift+Tab이나 /plan으로 계획 모드를 켠 뒤 프롬프트에 thinking 키워드를 넣으면 됩니다.
이 시스템의 성능 병목을 분석해줘. ultrathink.
이렇게 계획 모드에서 ultrathink를 붙이면 코드베이스를 넓게 탐색하면서 동시에 각 지점을 깊이 있게 분석합니다. 복잡한 아키텍처 결정에서 특히 강력한 조합이에요.
언어 모델과 추론 강도 설정하는 5가지 방법
클로드 코드에서 언어 모델과 추론 강도를 바꾸는 방법은 다섯 가지가 있습니다. 상황에 따라 적합한 방법이 다르니 하나씩 살펴볼게요.
우선 세션 중에 즉시 바꾸고 싶으면 /model 슬래시 커맨드를 씁니다.
❯ model
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Select model
Switch between Claude models. Applies to this session and future Claude Code sessions. For other/previous model names, specify with --model.
❯ 1. Default (recommended) ✔ Opus 4.6 with 1M context [NEW] · Most capable for complex work
2. Sonnet Sonnet 4.6 · Best for everyday tasks
3. Haiku Haiku 4.5 · Fastest for quick answers
● High effort ← → to adjust
Enter to confirm · Esc to exit
위아래 방향키로 언어 모델을 고르고 좌우 방향키로 추론 강도를 조절한 뒤 Enter를 누르면 바로 적용됩니다. 이 설정은 현재 세션에서만 유효해요.
언어 모델은 그대로 두고 추론 강도만 빠르게 바꾸고 싶을 때는 /effort 슬래시 커맨드가 더 편합니다.
❯ /effort high
⎿ Set effort level to high: Comprehensive implementation with extensive testing and documentation
/effort low, /effort medium, /effort high, /effort max 중 하나를 입력하면 현재 세션의 추론 강도가 즉시 바뀝니다. /model처럼 인터랙티브 메뉴를 거치지 않아도 되니까 작업 흐름이 끊기지 않아요.
모든 세션에 적용되는 기본값을 정하고 싶으면 settings.json에 설정합니다.
{
"model": "sonnet",
"effortLevel": "high"
}
설정 파일의 위치와 계층 구조에 대한 자세한 내용은 설정 가이드를 참고하세요.
CI/CD나 자동화 스크립트처럼 설정 파일을 수정하기 어려운 환경에서는 환경 변수나 CLI 플래그를 쓸 수 있습니다.
CLAUDE_CODE_EFFORT_LEVEL=low claude
claude --model opus
마지막으로 /fast 토글이 있습니다. 같은 언어 모델을 유지하면서 출력 속도만 빠르게 해주는 기능이에요. 추론 강도를 낮추는 것과는 다른 별도의 최적화입니다. 간단한 후속 질문에 유용합니다.
이 방법들 사이에는 우선순위가 있어서 /model·/effort 커맨드(세션) > 환경 변수 > settings.json(프로젝트) > settings.json(사용자) 순으로 적용됩니다.
상황별 추천 조합
어떤 언어 모델과 추론 강도를 쓸지 매번 고민하기보다는 작업 유형별 기본 전략을 정해두면 편합니다.
| 작업 유형 | 추천 조합 | 이유 |
|---|---|---|
| 빠른 질문, 문법 확인 | Haiku 또는 Sonnet + low | 속도가 중요하고 깊은 추론은 불필요 |
| 일상적인 기능 구현 | Sonnet + high (기본값) | 품질과 속도의 균형 |
| 코드 리뷰 | Sonnet + high | 충분히 꼼꼼하면서도 과하지 않음 |
| 복잡한 리팩토링 | Opus + medium | Opus의 medium이 이미 충분히 강력 |
| 아키텍처 설계 | Opus + high 또는 max | 멀티파일 심층 분석 필요 |
| 보안 감사 | Opus + max | 빠짐없는 분석이 중요 |
| 오타 수정, 포맷팅 | Haiku 또는 /fast | 가능한 한 빠르게 |
하루 동안의 워크플로우를 예로 들면 이렇습니다. 아침에 작업을 시작할 때는 Sonnet 기본값으로 충분합니다. 일상적인 기능 구현이나 버그 수정은 Sonnet + high가 잘 처리해요. 작업 중에 복잡한 문제를 만나면 /model로 Opus로 전환하고 분석이 끝난 뒤 간단한 후속 질문이 이어지면 /effort low로 추론 강도를 낮추거나 /fast를 켜서 빠르게 처리하는 식입니다.
서브 에이전트에서 언어 모델 지정하기
서브 에이전트를 만들 때 에이전트별로 다른 언어 모델을 지정할 수 있습니다. 에이전트 정의 파일의 frontmatter에 model 필드를 추가하면 돼요.
---
model: haiku
tools: Read, Grep, Glob
---
코드베이스에서 관련 파일을 검색하고 내용을 분석합니다.
model 필드에는 sonnet, opus, haiku 같은 별칭이나 claude-opus-4-6 같은 전체 언어 모델 ID를 쓸 수 있고 inherit을 쓰면 메인 세션의 언어 모델을 그대로 물려받습니다. 기본값이 inherit이라 따로 지정하지 않으면 메인 세션과 같은 언어 모델을 씁니다.
여기서 핵심 전략은 에이전트의 역할에 맞는 언어 모델을 고르는 겁니다. 파일 검색이나 코드 읽기처럼 읽기 전용 작업을 하는 에이전트는 Haiku로 충분하고 코드 리뷰나 보안 점검처럼 판단이 필요한 에이전트는 Sonnet이나 Opus를 쓰는 게 좋습니다. 클로드 코드의 빌트인 에이전트도 이 패턴을 따르고 있어요. Explore 에이전트는 Haiku로 빠르게 탐색하고 Plan 에이전트는 메인 언어 모델을 물려받아서 깊이 분석합니다.
마치며
언어 모델과 추론 강도는 클로드 코드에서 가장 체감이 큰 설정입니다. 작업의 복잡도에 AI의 마력을 맞추면 같은 비용으로 더 좋은 결과를 얻거나 같은 품질의 결과를 더 빠르게 받을 수 있어요. 기본값인 Sonnet + high가 대부분의 상황에서 충분하니 거기서 시작해서 필요할 때 /model로 언어 모델을, /effort로 추론 강도를 전환하는 습관을 들여보세요. 익숙해지면 서브 에이전트별로 언어 모델을 나누는 것까지 시도해볼 수 있습니다.
슬래시 커맨드 가이드에서 /model과 /effort를 포함한 다른 유용한 명령어를 확인할 수 있고 설정 가이드에서 settings.json의 전체 옵션을 살펴볼 수 있습니다.
더 자세한 내용은 Model overview와 Claude Code overview를 참고하세요.
This work is licensed under
CC BY 4.0