이 실험을 진행한 이유
모든 사람들이 Claude Sonnet 4.6과 Opus 4.6을 비교하는 벤치마크 표를 게시합니다. 빠른 검색만으로도 수십 개를 찾을 수 있습니다. 하지만 벤치마크는 표준화된 작업에 대한 모델의 성능을 측정할 뿐입니다. 새벽 2시에 기능을 배포하려고 엉망인 코드베이스에서 고군분투할 때 어떤 일이 벌어지는지는 알려주지 않습니다.
저는 더 간단한 질문에 답하고 싶었습니다. 개발자로서 매일 수행하는 실제 작업 전반에서, 언제 Opus 4.6이 5배의 가격 프리미엄만큼의 가치를 증명할까요?
그래서 통제된 실험을 설계했습니다. 3주 동안 모든 코딩 작업을 두 모델에 모두 실행했습니다. 동일한 prompts, 동일한 코드베이스, 동일한 평가 기준을 사용했습니다. 비용, 출력 품질, 완료 시간, 필요한 후속 수정 횟수를 추적했습니다.
청구 비용은 대략 $500가 나왔습니다. 제가 배운 모든 것을 공유합니다.
설정: 테스트 구조화 방식
두 모델 모두에 동일한 system prompts를 사용하여 Claude API를 직접 사용했습니다. wrappers, assistants, 특별한 configurations 없이 순수 API 호출만을 사용하여 비교를 명확하게 했습니다.
테스트된 모델:
- Claude Sonnet 4.6 (claude-sonnet-4-6) — 1백만 tokens당 input $3 / output $15
- Claude Opus 4.6 (claude-opus-4-6) — 1백만 tokens당 input $15 / output $75
방법론:
- 각 작업에 대해 동일한 prompt를 사용하고, 동일한 시간 내에 두 모델에 전송
- 각 작업의 점수 산정 기준: 정확성, 코드 품질, 완결성, 필요한 후속 prompts 횟수
- 모든 작업은 실제 프로젝트에서 추출 — 합성 벤치마크 없음
- 각 차원에 대해 1-10점 척도로 각 모델의 점수를 매김
가격 데이터는 Anthropic's official pricing page에서 직접 가져왔습니다. 속도 측정은 Artificial Analysis benchmarks를 참고했습니다.
시나리오 1: Async 코드의 Race Condition 디버깅
작업: Node.js 애플리케이션에서 데이터베이스 쓰기가 순서 없이 완료되는 간헐적인 오류가 발생했습니다. 이 bug는 부하가 걸릴 때만 나타났습니다. 두 모델에 관련 소스 파일(약 8K tokens의 context)과 error logs를 제공했습니다.
Sonnet 4.6 결과: 두 번의 대화 만에 Promise 체인 내에서 누락된 await를 식별했습니다. 쓰기 작업을 transaction으로 감싸는 것을 제안했습니다. 깔끔하고 정확한 수정이었습니다.
Opus 4.6 결과: 첫 번째 대화에서 동일한 근본 원인을 식별했지만 더 나아갔습니다. 인접한 모듈에서 제가 인지하지 못했던 두 번째 잠재적 race condition을 지적했습니다. 또한 왜 이 bug가 간헐적으로 발생하는지(동시 연결 시 event loop 타이밍) 설명하고, write queue를 사용한 구조적 수정을 제안했습니다.
우승자: Opus 4.6
차이점은 bug를 찾는 데 있지 않았습니다. 둘 다 찾았습니다. Opus는 두 번째 bug를 찾아냈고, 향후 문제를 방지할 수 있는 아키텍처적 context를 제공했습니다. 이는 Anthropic reports about Opus 4.6 having better debugging skills 및 자신의 실수를 스스로 잡아내는 능력에 대한 보고와 일치합니다.
비용: Sonnet $0.12 | Opus $0.58
시나리오 2: REST API용 CRUD Endpoints 구축
작업: TypeScript, Prisma ORM, Zod를 통한 input validation, 적절한 error handling을 포함하는 Express.js 애플리케이션의 "projects" 리소스에 대한 전체 CRUD endpoints 세트를 생성합니다.
Sonnet 4.6 결과: 단일 응답으로 5개의 모든 endpoints(create, read one, read all with pagination, update, delete)를 생성했습니다. Input validation은 정확했고, error handling은 견고했으며, TypeScript types는 정확했습니다. 복사해서 바로 테스트할 수 있는 수준이었습니다.
Opus 4.6 결과: 거의 동일한 구조로 5개의 동일한 endpoints를 생성했습니다. 약간 더 상세한 주석을 추가했습니다. 또한 제가 요청하지 않은 authentication용 middleware 제안을 포함했습니다.
우승자: Sonnet 4.6
출력 결과는 기능적으로 동일했습니다. Sonnet이 더 빠르고 저렴했으며, 요청하지 않은 아키텍처 제안으로 응답을 채우지 않았습니다. CRUD 생성과 같이 잘 정의되고 범위가 정해진 작업의 경우, Opus의 추가적인 추론 깊이는 비용 외에는 아무것도 더해주지 않습니다.
비용: Sonnet $0.08 | Opus $0.41
시나리오 3: Monolithic 컴포넌트를 작은 조각으로 Refactoring
작업: form state, API 호출, 권한 확인, 렌더링 로직을 포함하여 사용자 프로필을 처리하는 600줄짜리 React 컴포넌트를 테스트 가능한 작은 조각으로 분리해야 했습니다. 전체 컴포넌트와 해당 테스트 파일을 제공했습니다.
Sonnet 4.6 결과: 컴포넌트를 container 컴포넌트, form 컴포넌트, permissions hook, API hook의 네 부분으로 분리했습니다. 합리적인 분해였습니다. 그러나 테스트 파일에서 두 개의 import 경로를 업데이트하는 것을 놓쳤고, permissions hook에는 callback을 memoizing하지 않는 미묘한 state management 문제가 있었습니다.
Opus 4.6 결과: 더 깔끔한 분리로 다섯 조각으로 나누었습니다. 전용 types 파일을 만들고, 테스트 파일을 포함한 모든 imports를 정확하게 업데이트했으며, permissions hook은 적절하게 memoized되었습니다. 또한 원본 컴포넌트의 effect cleanup에 잠재적인 memory leak이 있음을 지적하고 수정했습니다.
우승자: Opus 4.6
여기서 격차가 실제로 드러납니다. 의존성 추적이 포함된 다중 파일 refactoring은 Opus 4.6's 76% score on MRCR v2 (다중 파일 추론 및 코드 리뷰) 점수가 실질적인 가치로 전환되는 정확한 시나리오입니다. Sonnet의 솔루션은 두 번의 수정 과정이 필요했습니다. Opus는 첫 번째 시도에서 정확하게 결과물을 냈습니다.
비용: Sonnet $0.22 (수정 포함) | Opus $0.95
시나리오 4: 기존 코드에 대한 Unit Tests 작성
작업: 만료된 카드, 잔액 부족, 네트워크 타임아웃, 부분 환불, 통화 변환 등 여러 edge cases가 있는 결제 처리 모듈에 대한 포괄적인 unit tests를 작성합니다.
Sonnet 4.6 결과: 제가 설명한 모든 시나리오를 다루는 14개의 test cases를 생성했습니다. 테스트는 명확한 describe/it 블록으로 잘 구성되었습니다. Mock 설정도 정확했습니다. 제가 명시적으로 언급하지 않은 두 가지 edge cases(빈 금액, 음수 금액)도 포함되었습니다.
Opus 4.6 결과: 16개의 test cases를 생성했습니다. 유사한 구조입니다. 전체 결제 흐름을 end-to-end로 검증하는 하나의 integration 스타일 테스트를 추가했습니다. 테스트 설명이 약간 더 장황했습니다.
우승자: 무승부 (가성비 면에서 Sonnet 4.6 우세)
둘 다 뛰어난 테스트 스위트를 생성했습니다. Opus는 두 개의 테스트를 더 추가했지만 의미 있게 더 나은 것은 아니었습니다. 테스트 생성에 있어 Sonnet은 equivalent quality at 5x lower cost를 제공합니다. 매우 복잡한 비즈니스 로직을 테스트하는 것이 아니라면 Sonnet이 올바른 선택입니다.
비용: Sonnet $0.09 | Opus $0.47
시나리오 5: 기술 문서 작성
작업: 12개의 public methods에 대한 method signatures, parameter 설명, return types, 사용 예시, error handling 가이드를 포함하여 내부 SDK용 API 문서를 생성합니다.
Sonnet 4.6 결과: 깔끔하고 잘 정리된 문서였습니다. 각 method에는 설명, parameter table, return type, 예시, error 섹션이 있었습니다. 전반적으로 일관된 서식을 유지했습니다.
Opus 4.6 결과: 거의 동일한 문서였습니다. Opus는 마지막에 methods가 어떻게 함께 구성되는지 보여주는 "Common Patterns" 섹션을 추가했는데, 좋았지만 요청하지 않은 것이었습니다.
우승자: Sonnet 4.6
문서화는 Sonnet의 간결함이 실제로 장점이 되는 작업입니다. developers comparing the two models이 언급했듯이, Opus는 때때로 단순한 작업에 불필요한 설명을 추가하여 tokens와 시간을 낭비합니다. 문서화의 경우 장황하고 철학적인 것보다 명확하고 완결성 있는 것이 중요합니다.
비용: Sonnet $0.14 | Opus $0.72
시나리오 6: Pull Request에 대한 Code Review
작업: API에 caching layer를 추가한 400줄짜리 pull request를 리뷰합니다. 두 모델이 bugs를 식별하고, 개선 사항을 제안하며, 보안 우려 사항을 지적하기를 원했습니다.
Sonnet 4.6 결과: 세 가지 문제를 발견했습니다. 업데이트 시 누락된 cache invalidation, 무제한 cache 성장으로 인한 잠재적 memory leak, TTL 추가 제안입니다. 훌륭하고 실행 가능한 피드백이었습니다.
Opus 4.6 결과: 동일한 세 가지 문제에 더해 두 가지를 더 발견했습니다. cache key 생성 시의 timing attack 취약점과 cache 채우기 중에 동시 요청이 stale data를 반환할 수 있는 미묘한 문제였습니다. 동시성 문제를 해결하기 위해 특정 패턴(distributed locks를 사용한 read-through cache)을 제안했습니다.
우승자: Opus 4.6
보안 관련 코드에 대한 code review는 Opus가 앞서 나가는 또 다른 분야입니다. Timing attack 취약점은 실제 존재했으며 명확히 드러나지 않는 부분이었습니다. 이는 실패가 넓은 아키텍처 표면에 걸쳐 있을 때 Opus가 특히 강력하다고 말하는 reports from developers와 일치합니다.
비용: Sonnet $0.11 | Opus $0.53
시나리오 7: 새로운 기능의 신속한 Prototyping
작업: WebSockets를 사용하여 실시간 알림 시스템을 구축합니다. 서버 측 handler, 클라이언트 측 hook, 애니메이션이 포함된 알림 컴포넌트가 필요했습니다. 완벽함보다는 시간이 우선순위였습니다.
Sonnet 4.6 결과: 단일 응답으로 작동하는 구현체를 제공했습니다. WebSocket handler, custom React hook, 알림 컴포넌트가 모두 함께 잘 작동했습니다. 애니메이션은 CSS 기반으로 부드러웠습니다. 사소한 문제로 reconnection 로직이 없었습니다.
Opus 4.6 결과: 유사한 품질의 결과물이었지만 reconnection 로직과 exponential backoff 전략을 포함했습니다. 또한 heartbeat 메커니즘을 추가했습니다. 낮은 token 속도로 인해 생성하는 데 약 30% 더 오래 걸렸습니다.
우승자: Sonnet 4.6
prototyping의 경우 완결성보다 속도가 더 중요합니다. Sonnet의 faster output generation (Opus의 40 tokens per second 대비 약 47 tokens per second)은 더 빠른 반복 주기를 의미합니다. Opus가 추가한 reconnection 로직은 좋았지만, 어차피 두 번째 단계에서 추가했을 것입니다. Prototyping은 빠르고 적당히 괜찮은 결과물에 유리합니다.
비용: Sonnet $0.10 | Opus $0.48
시나리오 8: 아키텍처 의사 결정
작업: 마이크로서비스 프로젝트를 위해 monorepo와 polyrepo 구조 중 하나를 선택해야 했습니다. 팀 규모, 배포 요구 사항, CI/CD 제약 조건, 서비스 경계를 제공했습니다. 두 모델에 tradeoff를 분석하고 접근 방식을 추천해 달라고 요청했습니다.
Sonnet 4.6 결과: 견고한 장단점 분석을 제공했습니다. 팀 규모를 바탕으로 Turborepo를 사용한 monorepo를 추천했습니다. 합리적이지만 다소 일반적이었습니다.
Opus 4.6 결과: 추천을 확정하기 전에 배포 빈도, 서비스 간 데이터 의존성, 팀의 monorepo 경험 여부에 대해 세 가지 확인 질문을 던졌습니다. 제가 답변한 후, 뉘앙스가 담긴 분석을 제공하여 하이브리드 접근 방식을 추천했습니다. 공유 라이브러리와 밀접하게 결합된 서비스는 monorepo로, 서로 다른 릴리스 주기를 가진 독립적으로 배포되는 서비스는 별도의 repos로 구성하는 방식입니다. 또한 현재 구조에서의 마이그레이션 경로도 개략적으로 설명했습니다.
우승자: Opus 4.6
Opus는 모호함을 더 잘 처리합니다. multiple developer reports confirm하듯이, Opus는 더 나은 확인 질문을 던지고 더 설득력 있는 가정을 세웁니다. 복잡한 아키텍처 결정을 내리는 시니어 엔지니어들에게 이러한 행동은 수 시간의 의견 교환을 절약해 줍니다.
비용: Sonnet $0.07 | Opus $0.62
최종 성적표
다음은 8가지 모든 시나리오에 대한 각 모델의 출력 품질 점수(1-10점 척도)입니다.
| 시나리오 | Sonnet 4.6 | Opus 4.6 | 우승자 |
|---|---|---|---|
| Race condition 디버깅 | 7 | 9 | Opus |
| CRUD endpoints | 9 | 9 | 무승부 (가성비 면에서 Sonnet) |
| 컴포넌트 refactoring | 6 | 9 | Opus |
| Unit test 작성 | 8 | 8.5 | 무승부 |
| 기술 문서 작성 | 9 | 8 | Sonnet |
| 코드 리뷰 (보안) | 7 | 9 | Opus |
| 신속한 prototyping | 9 | 8 | Sonnet |
| 아키텍처 의사 결정 | 6 | 9 | Opus |
Opus 4.6 승리: 4가지 시나리오 (디버깅, refactoring, 코드 리뷰, 아키텍처) Sonnet 4.6 승리: 2가지 시나리오 (문서화, prototyping) 무승부: 2가지 시나리오 (CRUD endpoints, 테스트 작성)
하지만 성적표가 숨기고 있는 부분이 있습니다. 비용을 고려했을 때 8가지 시나리오 중 6가지에서 Sonnet 4.6이 올바른 선택이었습니다. 점수가 눈에 띄게 낮았던 두 시나리오(refactoring 및 아키텍처)는 대부분의 개발자가 하루에 수십 번씩 하는 작업이 아니라 일주일에 몇 번 정도 하는 작업입니다.
비용의 현실
3주간의 테스트 동안 청구된 비용은 다음과 같습니다.
| 모델 | 총 지출 | 완료된 작업 | 작업당 평균 비용 |
|---|---|---|---|
| Sonnet 4.6 | ~$80 | 127 tasks | $0.63 |
| Opus 4.6 | ~$420 | 127 tasks | $3.31 |
Opus는 평균적으로 작업당 5.25배 더 많은 비용이 들었습니다. 동일한 작업 세트에 대해 Sonnet은 비용의 19%만으로 품질의 90%를 제공했습니다.
만약 제가 하이브리드 접근 방식(일상적인 작업에는 Sonnet을 사용하고, refactoring, 디버깅, 아키텍처가 포함된 20%의 작업에만 Opus를 사용)을 사용했다면, 총 청구액은 $500 대신 약 $160였을 것입니다. 이는 품질 저하 거의 없이 68%의 비용을 절감한 것입니다.
이는 production deployments report와 일치합니다. 요청의 80-90%를 Sonnet으로 보내고 중요한 작업만 Opus로 에스컬레이션하는 하이브리드 router 패턴은 API 비용을 60-80% 절감합니다.
벤치마크가 포착하지 못한 세 가지 패턴
1. Opus는 "잠깐만요, 더 많은 정보가 필요합니다"라고 말하는 데 더 능숙합니다.
모호한 prompts에 대해 Sonnet은 합리적인 기본값을 선택하고 바로 진행하는 경향이 있습니다. Opus는 멈추고 질문을 던집니다. 이는 아키텍처 작업에서는 매우 가치 있지만, 단순히 선택하고 넘어가길 원하는 일상적인 작업에서는 약간 번거로울 수 있습니다.
2. Sonnet은 지시사항을 문자 그대로 따르는 데 더 능숙합니다.
상세한 spec을 제공했을 때 Sonnet은 제가 요청한 것을 정확하게 구축했습니다. Opus는 때때로 제가 요청하지 않은 것들을 "개선"하려 했습니다(추상화 계층 추가, 패턴 제안, 범위를 벗어난 edge cases 포함 등). 창의성보다 준수성이 중요한 작업에서는 Sonnet이 승리합니다.
3. Context 길이가 길어질수록 품질 격차가 벌어집니다.
10K tokens 미만의 context 작업에서는 두 모델을 거의 구별할 수 없었습니다. 대규모 refactors, 다중 파일 리뷰 등 context가 30K tokens를 초과하자 Opus가 눈에 띄게 더 일관성을 유지했습니다. 이는 긴 context에서의 다중 파일 추론에 대한 Opus 4.6's 76% score on MRCR v2 점수와 일치합니다.
벤치마크 결과 (참고용)
수치를 원하는 분들을 위해, 2026년 3월 기준 주요 벤치마크는 다음과 같습니다.
| 벤치마크 | Sonnet 4.6 | Opus 4.6 |
|---|---|---|
| SWE-bench Verified | 79.6% | 80.8% |
| GPQA Diamond | 74.1% | 91.3% |
| MRCR v2 (long context) | ~18.5% (4.5 era) | 76% |
| Speed (tokens/sec) | ~47 | ~40 |
| Max context | 1M tokens | 1M tokens |
| Max output | 64K tokens | 128K tokens |
출처: Anthropic model overview, Artificial Analysis, Claude 5 benchmark analysis
SWE-bench 격차는 단 1.2포인트에 불과합니다. 하지만 GPQA Diamond 격차(과학적 추론)는 17포인트로 매우 큽니다. 그리고 MRCR v2 격차(long-context 다중 파일 작업)가 실제 실용적인 차이가 발생하는 지점입니다.
추천: 의사 결정 프레임워크
$500의 지출과 3주간의 테스트 끝에 얻은 의사 결정 트리입니다.
다음의 경우 Sonnet 4.6을 사용하세요:
- 요구 사항이 명확하고 잘 정의된 작업인 경우
- 처음부터 새로운 코드를 작성하는 경우(endpoints, 컴포넌트, scripts)
- 빠른 반복 속도가 필요한 경우(prototyping, 탐색적 코딩)
- 테스트나 문서를 생성하는 경우
- Context 길이가 20K tokens 미만인 경우
- 예산이 한정되어 있거나 높은 요청 볼륨을 처리해야 하는 경우
다음의 경우 Opus 4.6을 사용하세요:
- 복잡한 의존성이 있는 여러 파일에 걸친 refactoring 작업인 경우
- 설계를 확정하기 전에 모델이 tradeoff에 대해 추론해야 하는 경우
- 대규모 코드베이스에서 명확하지 않은 문제를 디버깅하는 경우
- 보안이 중요한 코드를 리뷰하는 경우
- Context 길이가 30K tokens를 초과하고 일관성이 중요한 경우
- 오답으로 인한 비용이 모델 호출 비용보다 훨씬 큰 경우
다음의 경우 둘 다(하이브리드 router) 사용하세요:
- 복합적인 작업 복잡도를 가진 프로덕션 시스템을 구축하는 경우
- 어려운 문제에 대해서는 Opus라는 안전망을 유지하면서 Sonnet의 60-80% cost savings 효과를 얻고 싶은 경우
개발자 도구를 구축하는 팀에게—저희는 ZBuild에서 이 하이브리드 접근 방식의 버전을 사용합니다—router 패턴은 2026년 업계 표준이 되었습니다.
다음 실험에서 개선할 점
이 실험을 다시 수행한다면 세 번째 차원을 추가할 것입니다. 각 모델이 프로덕션 준비 완료 수준의 출력에 도달하기 위해 얼마나 많은 후속 prompts가 필요했는지 측정하는 것입니다. 제 직감으로는 Opus가 다중 파일 작업에 대해 일관되게 첫 번째 시도 정확도가 높았기 때문에, 복잡한 작업에서 Opus가 더 유리하게 나타날 것입니다.
또한 Opus에 대해 extended thinking을 활성화하여 테스트해 보고 싶습니다. 이는 이미 강력한 디버깅 및 아키텍처 추론 능력을 더욱 향상시킨다고 알려져 있습니다.
결론은 이렇습니다. 모든 작업을 Sonnet 4.6으로 시작하세요. 어떤 작업이 Opus를 필요로 하는지는 금방 알게 될 것입니다. Opus를 필요로 하는 작업은 구체적이고 비교적 드물며, 프리미엄을 정당화할 만큼 높은 가치를 지닙니다.
출처
- Anthropic — Introducing Claude Opus 4.6
- Anthropic — Claude Models Overview
- Anthropic — Claude Pricing
- Artificial Analysis — Claude Sonnet 4.6 Performance
- Claude 5 — Opus 4.6 Benchmark Analysis
- Bind AI — Sonnet 4.6 vs Opus 4.6 for Coding
- Emergent — Claude Sonnet vs Opus 2026
- DEV Community — Opus 4.6 vs Sonnet 4.6 Coding Comparison
- Macaron — Claude Opus 4.6 for Code Review
- Apiyi — Opus 4.6 vs Sonnet 4.6 Comparison Guide
- Medium — Tested Sonnet 4.6 vs Opus 4.6 for Vibe Coding