Claude Code 모델 비교: Opus·Sonnet·Haiku 5.5를 effort별로 108번 돌려 보니
Haiku로 바꾸면 얼마나 아끼고, 대신 결과는 얼마나 나빠질까. 이게 궁금해서 같은 코딩 과제 세 개를 Opus 5.5, Sonnet 5.5, Haiku 5.5에 effort를 low부터 xhigh까지 바꿔 가며 세 번씩 맡겨 봤습니다. 모두 108번입니다.
108번 중 107번이 채점 테스트를 전부 통과했어요. 틀린 한 번은 Opus였고, Haiku는 36번 모두 만점이었습니다. 그런데 비용은 Haiku가 Opus의 17~27분의 1이었습니다.
그래서 저는 규칙이 분명한 구현 작업이라면 Sonnet이나 Haiku로 먼저 해 보길 권합니다. Haiku를 쓸 때는 effort를 올리지 말고 기본값 medium 이하로 두는 게 좋았어요. 올리면 비용은 여전히 싸지만 시간이 Opus만큼 걸리더라고요.
2026년 10월 22~23일 Windows 11 테스트 환경에서 Claude Code 2.1.296으로 직접 실행한 결과이고, 모델 이름과 기본값은 같은 날 확인한 공식 문서 기준입니다.
확인한 버전·환경
- Claude Code 2.1.296 · Opus 5.5 · Sonnet 5.5 · Haiku 5.5 · Windows 11 · 확인일 2026-10-23
한눈에 보면: 같은 만점, 다른 값
비용 그래프에서 먼저 볼 것은 막대 아래 줄입니다. 열두 조합 중 열한 개가 아홉 번 모두 만점이었고, 나머지 하나도 아홉 번 중 여덟 번이었어요. 이번 과제에서는 모델을 바꿔도 결과가 거의 움직이지 않았습니다.
반면 값은 크게 갈립니다. 같은 medium에서 Sonnet은 Opus 비용의 42%, Haiku는 약 5%였어요. effort를 xhigh까지 올린 Haiku($0.023)도 low로 둔 Opus($0.17)보다 일곱 배 넘게 쌉니다.
시간 그래프는 반대 이야기를 합니다. Haiku는 low에서는 Opus보다 빠르지만, high에서 66초, xhigh에서 128초로 세 모델 중 가장 오래 걸렸습니다. 출력 토큰을 Opus의 2배 안팎으로 쓰면서 오래 생각하더라고요. 그러니 Haiku는 싸게 빨리 끝내고 싶을 때 쓰고, effort를 올려서 쓸 모델은 아닙니다.
세 과제, 모두 함정을 넣어서
과제는 README에 규칙을 적어 두고 함수 하나를 구현하게 했습니다. Claude에게는 예시 테스트 세 개만 보여 주고, 채점은 따로 준비한 테스트로 했어요.
| 과제 | 내용 | 채점 테스트 |
|---|---|---|
| 줄바꿈 | 한글 2칸·영문 1칸으로 세어 터미널 폭에 맞춰 줄 나누기 | 23개 |
| 계산식 | -2^2, 2^3^2, 2*-3 같은 식 계산, 문법 오류 처리 |
35개 |
| 크론 | 크론 표현식의 다음 실행 시각 계산 | 34개 |
크론 과제가 가장 까다로웠습니다. 날짜와 요일을 둘 다 지정하면 둘 중 하나만 맞아도 실행되는 규칙, 2월 29일과 2100년처럼 윤년이 아닌 해, 요일 7을 일요일로 보는 규칙, MON-FRI 같은 이름 범위가 들어 있어요. 세 모델 모두 이 함정을 전부 맞혔습니다.
Opus가 틀린 한 번은 계산식 과제의 low였습니다. 공백을 먼저 다 지우는 바람에 1 2를 오류 대신 12로 계산했어요. 이 실패는 effort 단계별로 30번 돌려 본 글에서 자세히 다뤘습니다.
모델별 숫자
아래는 과제 세 개를 세 번씩 돌린 평균입니다. 비용은 Claude Code가 결과에 적어 주는 값으로, API 단가로 환산한 숫자예요. 구독으로 쓰면 이만큼 청구되지는 않지만 그만큼 사용량 한도를 씁니다.
| 모델 | effort | 만점(9회) | 비용 | 시간 | 출력 토큰 |
|---|---|---|---|---|---|
| Opus 5.5 | low | 8 | $0.17 | 34초 | 2,815 |
| Opus 5.5 | medium | 9 | $0.20 | 44초 | 3,917 |
| Opus 5.5 | high | 9 | $0.24 | 53초 | 4,951 |
| Opus 5.5 | xhigh | 9 | $0.50 | 127초 | 13,510 |
| Sonnet 5.5 | low | 9 | $0.076 | 27초 | 2,328 |
| Sonnet 5.5 | medium | 9 | $0.085 | 29초 | 2,850 |
| Sonnet 5.5 | high | 9 | $0.11 | 47초 | 4,220 |
| Sonnet 5.5 | xhigh | 9 | $0.22 | 93초 | 11,102 |
| Haiku 5.5 | low | 9 | $0.006 | 29초 | 4,182 |
| Haiku 5.5 | medium | 9 | $0.009 | 45초 | 7,503 |
| Haiku 5.5 | high | 9 | $0.014 | 66초 | 12,064 |
| Haiku 5.5 | xhigh | 9 | $0.023 | 128초 | 24,226 |
Sonnet medium은 29초로 Opus medium보다 15초 짧고, 비용은 절반이 안 됩니다. 결과와 시간, 비용을 다 따지면 이번 실측의 균형점은 Sonnet medium이었습니다.
모델과 effort 바꾸는 법
시작할 때는 --model과 --effort, 세션 안에서는 /model과 /effort입니다.
claude --model haiku --effort low
/model sonnet
/effort medium
이번 실행에서 opus, sonnet, haiku라는 이름은 각각 Opus 5.5, Sonnet 5.5, Haiku 5.5로 잡혔습니다. 세 모델 모두 effort를 low부터 max까지 받고, 기본값은 medium이에요. 같은 이름의 단계라도 모델마다 실제 값이 달라서, 모델을 바꿀 때 쓰던 단계를 그대로 옮기기보다 기본값에서 다시 시작하는 편이 낫습니다.
모델을 정하는 자리가 여러 곳이라 헷갈린다면 Claude Code 모델 변경 5가지 방법과 우선순위를 먼저 보세요.
저는 이렇게 고릅니다
| 상황 | 모델 · effort |
|---|---|
| 규칙이 분명한 구현, 반복 작업, 서브에이전트 | Haiku · low~medium |
| 평소 코딩 대부분 | Sonnet · medium |
| 규칙을 스스로 찾아야 하거나 여러 파일을 엮는 일 | Opus · medium~high |
| 오래 혼자 돌려야 하는 어려운 문제 | Opus · xhigh, 결과 비교 |
이번 세 과제는 모두 README에 규칙이 다 적힌 함수 하나짜리 과제였어요. 실제 저장소처럼 무엇을 고쳐야 하는지부터 찾아야 하는 일은 성격이 다르니, 자주 하는 작업 하나를 골라 Sonnet과 Haiku로 한 번씩 돌려 보고 정하는 게 가장 정확합니다.
돌려 보고 나서
모델 이름에서 오는 인상과 실제 결과가 이렇게 다를 줄은 몰랐습니다. 규칙이 다 주어진 일에서는 가장 작은 모델도 함정까지 다 맞혔고, 차이는 값과 시간에서만 났어요.
비싼 모델은 “어려운 일”에 쓰는 게 맞지만, 어려운 일이 생각보다 드물다는 게 이번에 남은 생각입니다. 평소에는 Sonnet medium으로 쓰다가, 반복 작업은 Haiku로 넘기고, 막히는 일이 나오면 그때 Opus를 꺼내 보세요. effort 단계만 바꿨을 때의 차이는 effort low부터 max까지 직접 잰 결과에 그래프로 정리해 두었습니다.
같은 버그를 Codex CLI, Antigravity CLI와 나란히 맡겨 본 결과는 Claude Code vs Codex vs Antigravity 비교에 있습니다.
참고한 공식 자료
2026년 10월 23일에 확인했습니다.
- Model configuration — 모델 별칭, 모델별 effort 단계와 기본값(Opus 5.5·Sonnet 5.5·Haiku 5.5는
medium), 단계 이름이 모델마다 다른 값이라는 점,/model·/effort·--model·--effort