Tips & Tricks

Claude Code API 비용 완전 정복: $450에서 $45/월로 줄인 5가지 실전 절감 기법

Claude Code API 요금을 실제 수치로 해설합니다. 프롬프트 캐싱·모델 최적화·배치 처리로 월 $450→$45, 90% 절감을 달성한 방법을 모두 공개합니다.

“Claude Code를 매일 쓰다 보니 지난달 API 요금이 $450이 나왔다”—이런 경험을 하는 개발자가 늘고 있습니다. Claude Code는 강력하지만, 사용 방법에 따라 비용이 10배 이상 달라집니다.

이 사이트(claudecode-lab.com)에서는 Claude Code로 매일 3편의 다국어 기사를 자동 생성하고 있습니다. 첫 1주일에 $380을 썼지만, 최적화 후에는 같은 작업량으로 월 $40대에 맞추고 있습니다. 90% 절감을 실현한 구체적인 방법을 모두 공개합니다.

먼저 ‘어디서 과금되는지’를 파악한다

요금을 줄이려면 무엇에 과금되는지 정확히 이해해야 합니다.

Claude API 요금 = 입력 토큰 × 입력 단가 + 출력 토큰 × 출력 단가

모델별 요금표 (2026년 4월 기준)

모델입력 (일반)입력 (캐시 읽기)출력
claude-opus-4-6$15/1M$1.50/1M$75/1M
claude-sonnet-4-6$3/1M$0.30/1M$15/1M
claude-haiku-4-5$0.80/1M$0.08/1M$4/1M

두 가지 중요한 포인트:

  1. 출력은 입력의 5배 비쌈 → 출력만 줄여도 대폭 절감
  2. 캐시 읽기는 일반 입력의 1/10 → 캐시가 최대의 무기

Anthropic 콘솔에서 비용 내역 확인

# API로도 확인 가능
curl https://api.anthropic.com/v1/usage \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01"

어떤 모델에 몇 토큰 쓰고 있는지를 파악하는 것이 첫걸음입니다.

기법 1: 프롬프트 캐시로 입력 비용을 1/10으로

즉효성이 가장 높은 대책. system prompt에 한 줄만 추가하면 입력 비용이 1/10이 됩니다.

원리

Anthropic의 프롬프트 캐시는 같은 내용을 5분 이내에 재전송하면 $1.50/1M의 캐시 요금으로 제공하는 구조입니다. 5분의 TTL(유효기간)이 있으며, 그 사이에는 몇 번 호출해도 매우 저렴합니다.

구현

import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic();

// ❌ 캐시 없음: 매번 $15/1M으로 과금
const res = await client.messages.create({
  model: "claude-opus-4-6",
  max_tokens: 1024,
  system: "당신은 XXX 프로젝트의 전문가입니다.\n" + longProjectContext,
  messages: [{ role: "user", content: prompt }],
});

// ✅ 캐시 있음: 2회 이후 $1.50/1M (90% 할인)
const res = await client.messages.create({
  model: "claude-opus-4-6",
  max_tokens: 1024,
  system: [
    {
      type: "text",
      text: "당신은 XXX 프로젝트의 전문가입니다.\n" + longProjectContext,
      cache_control: { type: "ephemeral" },  // ← 이것만 추가
    },
  ],
  messages: [{ role: "user", content: prompt }],
});

실제 절감액 (이 사이트의 경우)

매일 3편 × system prompt 8,000토큰 × Opus $15/1M

최적화 전:
  3편 × 10회 호출 × 8,000토큰 × $15/1M = $3.60/일 → $108/월

최적화 후 (캐시 포함):
  최초 쓰기: 3회 × 8,000토큰 × $18.75/1M = $0.45/일
  나머지 27회 읽기: 27 × 8,000토큰 × $1.50/1M = $0.32/일
  합계: $0.77/일 → $23/월

절감액: $85/월 (79% 절감)

캐시가 효과 없는 경우 주의: TTL 5분을 넘으면 캐시가 무효화됩니다. 배치 처리 시 5분 이내에 같은 system prompt로 여러 번 호출을 묶으면 효과적입니다.

기법 2: 작업 유형에 따라 모델을 구분해서 사용

모든 작업에 Opus를 쓰는 것은 포르쉐로 배달하는 것과 같습니다.

사용 기준

type TaskComplexity = "complex" | "standard" | "simple";

function getModel(task: TaskComplexity): string {
  return {
    complex: "claude-opus-4-6",        // 설계·어려운 디버깅·코드 리뷰
    standard: "claude-sonnet-4-6",     // 일반적인 구현·리팩터링
    simple: "claude-haiku-4-5-20251001", // 번역·포맷·분류·요약
  }[task];
}

번역 작업의 실례 (이 사이트의 다국어 전개)

// 기사를 9개 언어로 번역하는 경우

// ❌ Opus로 번역: $75/1M × 출력 2,000토큰 × 9개 언어 = $1.35/기사
const translations = await translateWithModel("claude-opus-4-6", article);

// ✅ Haiku로 번역: $4/1M × 출력 2,000토큰 × 9개 언어 = $0.072/기사
const translations = await translateWithModel("claude-haiku-4-5-20251001", article);

// 절감: $1.35 → $0.072 (94.7% 절감, 번역 품질은 실용적으로 거의 동일)

매일 3편 × 9개 언어 번역을 Haiku로 전환한 효과: 월 $121 → $6.50 (94% 절감)

기법 3: 출력 토큰을 의도적으로 줄인다

출력은 입력의 5배 비싼데 불필요하게 긴 출력을 허용하는 경우가 많습니다.

출력을 줄이는 프롬프트 기법

❌ "이 코드의 문제를 알려줘"
   → 장황한 설명이 돌아옴 (1,000토큰)

✅ "이 코드의 문제점을 불릿 3개 이내로, 각 항목 2줄 이내로 알려줘"
   → 간결한 답변 (200토큰)

절감 효과: 출력 토큰 80% 절감 = 비용 $0.075 → $0.015 / 호출

max_tokens를 적절히 설정

// ❌ 기본값 4096은 대부분의 경우 과한 설정
const res = await client.messages.create({
  model: "claude-opus-4-6",
  max_tokens: 4096,  // 최대 4,096토큰 과금될 가능성
  messages: [...]
});

// ✅ 용도에 맞게 설정
const configs = {
  codeReview:      { max_tokens: 512  },  // 지적 사항만
  bugAnalysis:     { max_tokens: 1024 },  // 원인 + 수정안
  implementFeature:{ max_tokens: 4096 },  // 전체 구현
  summarize:       { max_tokens: 256  },  // 요약만
};

기법 4: 서브에이전트로 컨텍스트를 분리

긴 대화 세션에서는 과거 대화 기록이 매번 입력에 포함되어 비용이 부풀어 오릅니다. 서브에이전트에 위임하면 컨텍스트를 초기화할 수 있습니다.

// 메인 대화가 길어졌을 때 무거운 처리를 서브에이전트에게

// ❌ 메인 컨텍스트에서 번역: 과거의 모든 대화 기록이 매번 전송됨
const translation = await translateInCurrentContext(article);

// ✅ 서브에이전트에 위임: 새로운 컨텍스트로 실행
const translation = await Agent({
  subagent_type: "general-purpose",
  prompt: `다음 기사를 영어로 번역해줘:\n\n${article}`,
  // ← 과거 대화 기록 없음, article만이 입력
});

Claude Code의 Agent 툴은 바로 이 패턴으로 동작합니다. 번역·검색·파일 조작 등 ‘스팟성 작업’은 서브에이전트화가 철칙입니다.

기법 5: 비용 모니터링과 상한 알림 설정

마지막은 ‘비용을 파악하고 상한을 설정’하는 것. 무한 과금을 방지하는 안전장치입니다.

Anthropic 콘솔에서의 설정

  1. Anthropic ConsoleUsage Limits로 이동
  2. Monthly budget 설정 (예: $50/월)
  3. Alert threshold 설정 (예: $40에서 알림)

코드 레벨에서의 비용 추적

// 응답의 usage를 기록하여 비용을 추적
interface CostTracker {
  inputTokens: number;
  outputTokens: number;
  cacheReadTokens: number;
  cacheWriteTokens: number;
}

function calculateCost(usage: CostTracker, model: string): number {
  const rates = {
    "claude-opus-4-6": {
      input: 15, cacheRead: 1.5, cacheWrite: 18.75, output: 75
    },
  };
  const rate = rates[model];
  return (
    (usage.inputTokens * rate.input +
     usage.cacheReadTokens * rate.cacheRead +
     usage.cacheWriteTokens * rate.cacheWrite +
     usage.outputTokens * rate.output) / 1_000_000
  );
}

const res = await client.messages.create({ ... });
const cost = calculateCost(res.usage, "claude-opus-4-6");
console.log(`이 호출의 비용: $${cost.toFixed(4)}`);

정리: 절감 효과의 누적

기법절감 효과난이도
프롬프트 캐시최대 90%낮음 (1줄 추가)
모델 구분 사용최대 95%낮음~중간
출력 토큰 제한30~80%낮음 (프롬프트 개선)
서브에이전트 위임20~50%중간
상한 알림 설정폭탄 과금 방지낮음

이 사이트에서의 실적:

최적화 전: $450/월 (전 작업 Opus, 캐시 없음)
최적화 후: $45/월  (Haiku 번역, Opus 캐시, 출력 제한)
절감액: $405/월 (90% 절감)

오늘 바로 할 수 있는 첫 번째 한 수: system prompt에 cache_control: { type: "ephemeral" }을 추가하는 것. 이것만으로 입력 비용이 1/10이 됩니다. 나머지 기법은 그 다음에 순서대로 도입하세요.

관련 기사

참고 자료

#claude-code #cost #api #prompt-caching #optimization #anthropic

Claude Code 워크플로우를 한 단계 업그레이드하세요

지금 바로 Claude Code에 복사해 쓸 수 있는 검증된 프롬프트 템플릿 50선.

무료 제공

무료 PDF: 5분 완성 Claude Code 치트시트

이메일 주소만 등록하시면 A4 한 장짜리 치트시트 PDF를 즉시 보내드립니다.

개인정보는 엄격하게 관리하며 스팸은 보내지 않습니다.

Masa

이 글을 작성한 사람

Masa

Claude Code를 적극 활용하는 엔지니어. 10개 언어, 2,000페이지 이상의 테크 미디어 claudecode-lab.com을 운영 중.