Source: https://aiprimetech.io/ko/blog/cut-claude-api-costs-guide/ 2026년 16일, 유월 · 6분 · API # Claude API 요금 줄이기: 실용적인 토큰 비용 가이드 A 작성자 [AI Prime Tech](https://aiprimetech.io/ko/) · AI 활용 “이 티켓을 요약해 줘”라는 단일 호출도, 동일한 대형 시스템 프롬프트, 이전 메시지 세 개, 전체 도구 스키마를 계속 보내고 120단어만 필요했는데 2,000토큰짜리 답변을 받는다면 어느새 20,000토큰에 대한 청구로 이어질 수 있습니다. 실제로 팀들이 모델을 탓하게 되는 과정이 이렇지만, 진짜 문제는 요청 구성에 있습니다. Claude API 요금을 줄이려면 대개 모델에 대한 막연한 기대보다 체계적인 엔지니어링에서 가장 큰 효과를 얻을 수 있습니다. 고정된 접두부를 재사용하고, 컨텍스트를 적극적으로 줄이고, 작업에 맞는 가장 작은 모델을 선택하고, 출력을 제한하고, 요청 단위로 낭비를 측정하세요. 목표는 간단합니다. 의도치 않게 발생한 토큰이 아니라 유용한 토큰에 비용을 지불하는 것입니다. ## 토큰 예산을 이해하는 사고방식 모든 요청에는 비용을 결정하는 두 가지 요소가 있습니다: - 입력 토큰: 시스템 프롬프트, 사용자 메시지, 대화 기록, 도구 정의, 검색된 문서, 그리고 캐시되지 않았을 때 여전히 비용에 포함되는 캐시 대상 접두부. - 출력 토큰: 의도치 않게 장황해진 답변과 재시도를 포함한 모델의 응답. 다음과 같은 간단한 공식이 유용합니다: ``` request_cost ≈ input_tokens × input_rate + output_tokens × output_rate ``` 당연하게 들리지만, 이 관점은 비용 문제를 진단하는 방식을 바꿉니다. 평균적인 요청의 출력 비용은 “저렴”하지만 입력 비용이 높다면, 모델에 더 간결하게 답하라고 요청하는 것보다 시스템 프롬프트에서 400토큰을 줄이는 일이 더 중요할 수 있습니다. ## 모델 선택부터 시작하기 모든 작업에 가장 뛰어난 모델이 필요한 것은 아닙니다. 실제 시스템에서는 모델 선택이 가장 적은 비용으로 할 수 있는 최적화인 경우가 많습니다. | 작업 유형 | 권장 기본 선택 | 효과적인 이유 | 피해야 할 경우 | 빠른 분류, 추출, 라우팅 | Haiku | 낮은 지연 시간, 적은 비용, 대체로 충분한 추론 능력 | 다단계 분석, 정리가 안 된 문서 | 일반적인 코딩 지원, 요약, 변환 | Sonnet | 품질과 비용의 뛰어난 균형 | 장기적인 계획, 모호한 추론 | 어려운 추론, 심층 종합, 준수하기 까다로운 지시 | Opus | 실패 비용이 클 때 가장 적합 | 구조가 반복되는 일상적인 작업 | 방대한 컨텍스트를 사용하며 검색 비중이 높은 작업 | 필요한 경우 더 큰 컨텍스트를 지원하는 모델 | 청크 분할의 복잡성 감소 | 작업에 정말 필요한 경우에만 사용 흔히 빠지는 함정은 “상위 모델을 기본값으로 삼는 것”입니다. 팀들은 더 안전하게 느껴진다는 이유로 모든 프롬프트를 최상위 모델에 보내곤 합니다. 실제로는 추가 이점이 없는 작업에 비싼 보험료를 지불하는 셈입니다. 라우팅 계층을 마련하는 노력은 대개 그만한 가치가 있습니다: - Haiku 빠른 분류, JSON 추출, 로그 라벨링, 초기 분류에 사용합니다. - Sonnet 대부분의 에이전트 또는 개발자 도구 워크로드에 사용합니다. - Opus 작업에 더 강력한 추론이나 섬세한 종합이 정말 필요하거나, 실패 비용을 측정한 경우에만 사용합니다. 효과적인 간단한 정책은 다음과 같습니다: - 비용이 적게 드는 구조화된 작업에는 Haiku를 먼저 사용하세요. - 신뢰도가 낮거나 출력 형식이 잘못되었다면 Sonnet으로 전환하세요. - 정말 어려운 경우에만 Opus로 전환하세요. 이러한 단계적 대체 방식은 대개 모든 요청에 Opus 요금을 지불하는 것보다 저렴합니다. ## 시스템 프롬프트를 과감하게 줄이기 시스템 프롬프트에는 토큰 낭비가 버젓이 숨어 있습니다. 여기 정책 한 줄, 저기 스타일 규칙 하나, 아무도 삭제하지 않은 예시 다섯 개가 쌓이며 기술 부채처럼 커지기 쉽습니다. ### 제거할 항목 - 애플리케이션이 이미 강제하는 중복 지시. - 동작을 바꾸지 않는 장황한 “도움이 되도록 하라”는 문구. - 더 이상 중요하지 않은 예외 상황에 대한 오래된 예시. - 모든 요청에서 반복되는 정책 문구. - 간결한 스키마로 충분한데도 장황하게 작성된 도구 설명. ### 유지할 항목 - 반드시 지켜야 하는 동작 제약. - 출력 형식 규칙. - 안전에 필수적인 지시. - 신뢰성을 실질적으로 높이는 최소한의 예시. 실제로 저는 팀들이 모델의 품질을 바꾸지 않으면서 반복되는 접두부에서 수백 또는 수천 토큰을 줄이는 사례를 봤습니다. 핵심은 시스템 프롬프트를 프로덕션 코드처럼 다루는 것입니다. 불필요한 문구를 삭제하고, 중복 규칙을 정리하고, 동작에 영향을 주는 내용만 남기세요. 더 나은 방식은 서술형 문장 대신 구조로 표현하는 것입니다: ``` { "style": "concise", "output": "json", "must_include": ["root_cause", "next_steps"], "must_avoid": ["speculation", "apologies"] } ``` 이 방식은 서술형 지시 세 문단보다 이해하고 판단하기 쉽습니다. ## 고정된 접두부에 프롬프트 캐싱 사용하기 사용하는 스택이 프롬프트 캐싱을 지원한다면, 시스템 프롬프트, 도구 스키마, 퓨샷 예시, 긴 정책 블록처럼 여러 요청에서 반복되는 모든 내용에 활용하세요. 핵심은 “캐싱은 무료”라는 것이 아닙니다. 무료가 아닙니다. 이점은 호출할 때마다 동일한 접두부에 정상 요금을 반복해서 지불하지 않아도 된다는 데 있습니다. ### 캐싱에 적합한 항목 - 제품 전반에서 사용하는 시스템 프롬프트 - 대규모 함수 및 도구 정의 - 재사용되는 검색 지시 - 형식이나 스타일을 위한 고정 예시 - 거의 바뀌지 않는 에이전트 기본 구성 ### 캐싱에 부적합한 항목 - 요청별 사용자 컨텍스트 - 새로 검색된 문서 - 빠르게 바뀌는 지시 - 세션별 임시 작업 메모 흔한 실수는 자주 바뀌는 내용을 접두부에 넣은 다음 캐시 적중률이 왜 낮은지 의아해하는 것입니다. 효과를 얻으려면 캐시되는 구간을 고정하고 요청별 데이터는 그 뒤로 옮기세요. 요청 구성 예시: ``` { "system": "Stable application prompt + tool definitions + output contract", "messages": [ { "role": "user", "content": "New ticket text here" } ] } ``` 고정된 부분을 그대로 유지하면 캐싱이 실질적인 효과를 낼 수 있습니다. 접두부가 요청마다 바뀐다면 아무 이점 없이 캐시 관리 오버헤드 비용만 지불하는 셈입니다. ## 설정할 항목: max_tokens 확실하게 적용하기 쉽게 눈에 띄지 않는 비용 중 하나는 지나치게 큰 출력 한도입니다. 다음 값을 max_tokens “혹시 모르니” 아주 크게 설정하면 긴 응답이 나오기 쉬우며, 특히 모델이 확신하지 못하거나 장황하게 답할 때 그렇습니다. 작업을 처리하는 데 충분한 최소 한도를 사용하세요. ### 실용적인 범위 - 추출 / 분류: 32–128 토큰 - 짧은 요약: 128–256 토큰 - 코드 diff / 설명: 256–800 토큰 - 개방형 생성: 필요한 만큼만 높게 설정 작업이 “JSON 객체 하나 반환”이라면 엄격한 상한을 설정하세요. 작업이 “이 아키텍처 설명”이라면, 장황한 설명을 원하지 않는 한 모델이 소설 한 편을 쓸 여지를 주지 마세요. 많은 팀이 재시도 루프의 횟수를 제한하는 것도 잊습니다. 파싱에 실패했을 때 넉넉한 출력 한도를 그대로 둔 채 모델에 자동으로 재시도를 요청하면, 사용자 동작 한 번에 드는 출력 비용이 두 배나 세 배로 늘어날 수 있습니다. ## 작은 작업을 묶어서 처리하기 지시문 오버헤드가 비슷한 작고 독립적인 작업이 많을 때는 일괄 처리가 도움이 됩니다. 다음 방식 대신: - 별도의 분류 요청 50개 - 반복되는 시스템 프롬프트 50개 - 반복되는 도구 정의 50개 이렇게 처리하세요: - 50개 항목을 포함하는 요청 하나 - 공유 지시문 블록 하나 - 간결한 출력 스키마 하나 프롬프트 패턴 예시: ``` Classify each item into one of: bug, feature, question, billing. Items: 1. "App crashes after login" 2. "Can you add dark mode?" 3. "How do I reset my password?" ``` 응답 규약: ``` [ {"id": 1, "label": "bug"}, {"id": 2, "label": "feature"}, {"id": 3, "label": "question"} ] ``` 이렇게 하면 반복되는 오버헤드가 줄고 처리량도 개선되는 경우가 많습니다. 대신 실패의 영향 범위가 커집니다. 항목 하나가 형식을 어기면 전체 배치를 복구해야 할 수도 있습니다. 중요도가 높거나 사용자가 직접 이용하는 지연 시간에 민감한 처리 경로에서는 더 작은 배치가 여전히 나을 수 있습니다. ## 스트리밍은 응답성을 높이지만 토큰 비용을 줄이지는 않습니다 스트리밍은 UX에 매우 유용하고 때로는 비용 제어에도 도움이 되지만, 스트리밍 자체가 아닙니다. 청구되는 토큰을 마법처럼 줄여 주지는 않습니다. 모델이 생성한 내용에 대해서는 여전히 비용을 지불합니다. 스트리밍이 실제로 도움이 되는 부분은 조기 중단: - 사용자가 진행 상황을 더 빨리 확인할 수 있습니다. - 애플리케이션은 충분한 내용을 확보하면 생성을 취소할 수 있습니다. - 답변이 지나치게 길어지면 설정된 상한에 도달하기 전에 중단할 수 있습니다. 마지막 항목이 중요합니다. 후속 파서에 전달할 답변을 생성하는데 처음 120개 토큰에 이미 필요한 JSON이 포함되어 있다면, 설명을 800개 토큰 더 받아 모으지 마세요. 실제로 스트리밍은 앱이 생성 도중에 반응할 수 있을 때 가치가 있습니다. 스트리밍 내용을 로그에 기록하기만 하고 어차피 전체 답변을 기다린다면, UX상의 이점은 얻어도 비용은 크게 줄이지 못합니다. ## 월별 비용뿐 아니라 요청별 비용도 측정하기 월별 지출은 문제가 있다는 사실을 알려 줍니다. 요청 수준의 지표는 문제가 어디에 있는지 알려 줍니다. 최소한 다음 항목을 추적하세요: - input_tokens - output_tokens - cache_hit_tokens 확인할 수 있는 경우 - 모델 이름 - 엔드포인트 / 기능 경로 - 지연 시간 - 재시도 횟수 - 출력 잘림 또는 파싱 실패율 간단한 로깅 페이로드는 다음과 같이 구성할 수 있습니다: ``` usage = response["usage"] record = { "model": response["model"], "input_tokens": usage["input_tokens"], "output_tokens": usage["output_tokens"], "latency_ms": latency_ms, "cache_hit_tokens": usage.get("cache_read_input_tokens", 0), "request_type": "ticket_summary", } print(record) ``` 그런 다음 비용을 중앙에서 계산하세요: ``` def estimate_cost(input_tokens, output_tokens, input_rate, output_rate): return (input_tokens * input_rate) + (output_tokens * output_rate) ``` 정확한 요금은 제공업체와 모델에 따라 다르지만, 작업 흐름은 동일합니다. 요청을 비용순으로 정렬할 수 있게 되면, 대개 원인이 금방 드러납니다: - 거대한 숨은 접두부가 붙은 “작은” 프롬프트 - 매 턴마다 문서 전체를 다시 전송하는 도구 호출 - 작업에 필요한 양의 10x인 생성 출력 상한 - 사용량을 드러나지 않게 두 배로 늘리는 재시도 루프 - Haiku를 사용해야 하지만 항상 Opus를 사용하는 라우트 ## 눈에 띄지 않는 낭비 방지하기 토큰 낭비의 대부분은 평범해서 코드 리뷰에서도 걸러지지 않습니다. ### 흔한 원인 - 매 턴마다 동일한 긴 대화 기록을 다시 전송하는 것 - diff만 필요할 때 소스 파일 전체를 포함하는 것 - 구조화된 JSON이면 충분한데도 서술형 텍스트를 요청하는 것 - 기계가 처리할 응답에 장황한 설명을 반환하는 것 - 실제 작업보다 더 큰 도구 스키마를 전달하는 것 - 자동 재시도로 동일한 고비용 프롬프트를 다시 실행하게 하는 것 - 모델 컨텍스트 안에 로그나 내부 메모를 남겨 두는 것 특히 골치 아픈 함정은 “도움을 주려는 컨텍스트 확장”입니다. 검색 시스템은 누군가 혹시 모를 상황에 대비하려 했다는 이유로 너무 많은 내용을 가져오는 경우가 많습니다. 모델에 관련성이 가장 높은 문단 세 개만 필요하다면, 청킹 계층 덕분에 쉽게 넣을 수 있다는 이유만으로 문서 전체를 제공하지 마세요. 또 다른 함정도 있습니다. 모델에 “간결하게 답하라”는 두 번째 프롬프트를 덧붙이면, 더 엄격한 출력 스키마로 해결했어야 할 장황함 문제를 해결하려고 토큰만 추가한 셈일 수 있습니다. ## 실용적인 요청 설계 다양한 프로덕션 작업에서 효과적인 패턴은 다음과 같습니다: ``` request = { "model": "claude-sonnet-4.6", "max_tokens": 180, "system": "Extract the root cause and next action. Return strict JSON.", "messages": [ { "role": "user", "content": "Investigate this incident summary: ... " } ] } ``` 이 구성이 효과적인 이유: - 선택한 모델은 중간 수준의 추론을 수행하기에 충분한 성능을 갖추고 있습니다. - 출력 상한이 과도하게 장황해지는 것을 제한합니다. - 시스템 프롬프트가 짧고 구체적입니다. - 출력 형식이 기계 처리에 적합합니다. - 사용자 페이로드에는 작업에 필요한 입력만 포함됩니다. 컨텍스트가 더 필요하면 의도적으로 추가하세요. 의도치 않게 컨텍스트가 쌓이도록 두지 마세요. ## 실제로 비용을 좌우하는 요소 효과가 가장 큰 방법의 순위를 매긴다면 다음과 같습니다: - 쉬운 작업에는 더 저렴한 모델 선택하기 - 불필요하게 커진 프롬프트 줄이기 - 상한 설정 max_tokens 적극적으로 - 변하지 않는 접두부에 프롬프트 캐싱 사용하기 - 작고 독립적인 작업을 묶어서 처리하기 - 요청 수준의 사용량 측정하기 - 재시도 루프가 지출을 두 배로 늘리지 못하게 하기 이 순서가 중요합니다. 팀들은 흔히 명백한 문제를 해결하기 전에 특이한 최적화부터 시작합니다. 지나치게 많은 컨텍스트를 담아 가장 비싼 모델에 너무 많은 것을 너무 자주 요청하고 있다는 단순한 문제 말입니다. ## 실무 핵심 요점 - 다음을 사용하세요: Haiku 단순한 추출과 라우팅에, Sonnet 대부분의 제품 작업에, 그리고 Opus 작업에 그만한 필요성이 있을 때만. - 다음 주제에 관한 시스템 프롬프트 를 비용 발생 요소로 보고, 반복되는 서술을 삭제하고 동작을 바꾸는 지시문만 남기세요. - 활성화하세요 프롬프트 캐싱 정책, 도구 스키마, 퓨샷 예시처럼 변하지 않는 접두부에. - 설정할 항목: max_tokens 를 유용한 범위 내에서 가장 낮은 상한으로 설정하고 작업별로 재검토하세요. - 일괄 처리하세요 지시문 오버헤드가 대부분을 차지할 때는 작고 독립적인 작업을. - 추적하세요 입력 토큰, 출력 토큰, 캐시 적중, 재시도, 지연 시간을 요청별로. - 주의하세요 눈에 띄지 않는 낭비: 반복되는 대화 기록, 과도한 검색 결과, 장황한 출력, 자동 재시도 루프. 원하시면 구체적인 비용 대시보드 예시와 Haiku/Sonnet/Opus 라우팅 규칙 몇 가지를 포함한 후속 글로 만들어 드릴 수 있습니다. [Claude](/ko/blog/tag/claude/)[프롬프트](/ko/blog/tag/prompts/)[API](/ko/blog/tag/api/) A [AI Prime Tech](https://aiprimetech.io/ko/) 이 블로그는 AI Prime Tech가 발행합니다. 기사는 AI의 도움을 받아 초안을 작성합니다. 모델 ID, 가격, 한도 등 버전별 세부 정보는 활용하기 전에 공식 문서와 대조해 확인하세요. 더 저렴하게 Claude API 이용하기 API 키 하나로 Claude Opus 5.5, Sonnet 5, Haiku 4.5, Fable 5.1 및 GPT-6개 모델을 이용하세요. 구독 없이 사용한 만큼만 결제합니다. [API 키 받기 →](/register) AI Prime Tech는 독립적인 타사 API 게이트웨이입니다. Claude™ 및 Anthropic®는 Anthropic, PBC의 상표입니다. 제휴 또는 보증 관계를 의미하지 않습니다.