본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 05. 28. 22:01

더 많은 토큰이 필요한 것이 아니라, 더 나은 사고 방식이 필요합니다

요약

Anthropic API 사용 시 발생하는 불필요한 토큰 낭비를 줄여 비용을 60% 절감한 사례를 공유합니다. 시스템 프롬프트 최적화, 컨텍스트 관리, 모델 라우팅 등 실질적인 비용 절감 전략을 다룹니다.

핵심 포인트

  • 출력 길이를 구체적으로 지정하여 토큰 낭비 방지
  • 전체 문서 대신 관련 섹션만 추출하여 컨텍스트 제공
  • 중복되고 모호한 시스템 프롬프트 간소화
  • 작업 난이도에 따라 저렴한 모델로 라우팅
  • 프롬프트 캐싱을 활용한 반복 컨텍스트 비용 절감

첫 Anthropic 청구서를 받았을 때, 저는 진심으로 그것이 실수라고 생각했습니다.

실수가 아니었습니다. 저는 깨닫지 못한 채 낭비를 하고 있었을 뿐입니다.

토큰 사용량에 집착하며 일주일을 보낸 끝에, 저는 거의 60%의 비용을 절감하면서도 더 나은 결과를 얻었습니다. 제가 배운 내용을 공유합니다.

토큰(Token)이란 정확히 무엇인가요?

토큰은 단어가 아닙니다. 단어의 덩어리(word-chunk)에 더 가깝습니다.

대략적인 규칙을 따르자면: 1 토큰 ≈ 영어 4글자입니다. 따라서 "unbelievable"은 약 3 토큰입니다. 한 단락 전체는 80~120 토큰 정도가 될 수 있습니다.

모든 API 호출은 양방향 모두 계산됩니다:

  • 입력 토큰 (Input tokens) — 당신이 보내는 모든 것 (프롬프트 (prompt) + 시스템 프롬프트 (system prompt) + 대화 기록 (conversation history))
  • 출력 토큰 (Output tokens) — 모델이 다시 보내는 모든 것

출력 토큰은 더 비쌉니다. 항상 그렇습니다. 이 점을 명심하세요.

대부분의 사람들이 인지하지 못한 채 토큰을 낭비하는 곳

제 프롬프트들을 감사(audit)해 보았을 때, 매번 똑같은 실수들을 발견했습니다.

비대해진 시스템 프롬프트 (Bloated system prompts). 저는 "도움이 되도록 하세요, 간결하게 하세요, 전문적으로 하세요..."라는 말을 다섯 가지 방식으로 반복하는 800단어짜리 프롬프트를 가지고 있었습니다. 이것은 매 호출마다 실행됩니다.

부분적인 컨텍스트로도 충분할 때 전체 컨텍스트를 쏟아붓는 것. 저는 문서 전체를 보내며 "섹션 3에 관한 이 질문에 답하세요"라고 말하곤 했습니다. 모델은 매번 그것을 전부 읽습니다.

짧은 답변으로도 충분할 때 긴 답변을 요구하는 것. "이 개념을 설명해 주세요"라고 하면 400단어의 답변이 돌아옵니다. "이것을 2문장으로 설명해 주세요"라고 하면 40단어의 답변이 돌아오며, 대개 더 깔끔한 답변을 얻을 수 있습니다.

절대 다듬어지지 않는 대화 기록 (Conversation history). 다회차 대화(multi-turn chats)에서는 이전의 모든 메시지가 다시 전송됩니다. 20회차 대화는 다음 메시지를 입력하기도 전에 이미 3,000 토큰에 달할 수 있습니다.

비용을 절감하는 데 실제로 효과적인 방법

1. 출력 길이를 구체적으로 지정하세요.
프롬프트에 "한 단락으로" 또는 "100단어 미만으로"를 추가하세요. 모델은 이를 준수하며, 이는 더 타이트한 답변을 강제합니다.

2. 컨텍스트를 덩어리(Chunk)로 나누세요.
전체 문서를 보내는 대신, 관련 있는 섹션만 추출해서 보내세요. 집중된 200 토큰의 발췌본은 2,000 토큰의 데이터 덤프보다 언제나 더 낫습니다.

3. 시스템 프롬프트(System Prompt)를 가차 없이 줄이세요.
모호하거나 반복되는 내용은 모두 삭제하세요. "간결하게 작성하세요"라고 한 번 말하는 것이 "가능한 한 답변을 간결하게 유지하고 불필요한 장황함을 피하도록 해주세요"라고 말하는 것보다 낫습니다. 적을수록 진정으로 더 많은 것을 얻을 수 있습니다.

4. 단순한 작업에는 더 저렴한 모델을 사용하세요.
모든 호출에 가장 강력한 모델이 필요하지는 않습니다. 분류(Classification), 요약(Summarization), 또는 포맷팅(Formatting) 작업을 더 작은 모델로 라우팅(Routing)하면 품질 저하 없이 비용을 5~10배까지 절감할 수 있습니다.

5. 반복되는 컨텍스트(Context)를 캐싱하세요.
무언가를 구축하면서 동일한 지침이나 문서를 반복해서 보내고 있다면, 프롬프트 캐싱(Prompt Caching)을 살펴보세요. Anthropic, OpenAI 및 기타 기업들이 이를 지원하며, 캐싱된 토큰(Cached tokens)은 새로 생성된 토큰의 아주 일부분만큼의 비용만 발생합니다.

6. 구조화된 출력(Structured Output)을 요청하세요.
"JSON 형식으로 반환하세요. 키 값: summary, action, confidence"라고 요청하는 것이 "상세한 설명을 작성한 뒤 권장 조치와 신뢰도를 이어서 작성해 주세요"라고 요청하는 것보다 처리 및 파싱(Parse)하기에 더 짧고 효율적입니다.

가장 큰 도움이 되었던 사고방식의 전환

저는 "어떻게 하면 더 나은 프롬프트를 작성할까"라는 생각을 멈추고, **"이 모델이 정확하게 답변하는 데 실제로 필요한 최소한의 컨텍스트는 무엇인가?"**라고 생각하기 시작했습니다.

그 질문이 모든 것을 바꾸었습니다.

모델은 당신의 인생 이야기를 필요로 하지 않습니다. 모델에게 필요한 것은 정확한 사실, 명확한 목표, 그리고 정의된 출력 형식입니다. 그 외의 모든 것은 당신이 비용을 지불하며 처리하고 있는 노이즈(Noise)일 뿐입니다.

이제 여러분의 이야기를 듣고 싶습니다:

  • 호출당 토큰 사용량을 실제로 확인해 본 적이 있나요, 아니면 그냥 청구서만 보고 계시나요?
  • 본인의 프롬프트에서 발견한 가장 어처구니없는 토큰 낭비는 무엇이었나요?
  • 품질을 해치지 않으면서 비용을 절감할 수 있는 비결을 찾으셨나요?
  • 프롬프트 캐싱을 이미 사용 중인가요? 그리고 그것이 실제로 도움이 되었나요? 아래에 답변을 남겨주세요. "토큰이 이런 방식으로 작동하는지 전혀 몰랐어요"라는 답변도 괜찮습니다. 우리 모두 그런 경험이 있으니까요.

AI 자동 생성 콘텐츠

본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0