6개월 전 청구서를 보고 멈췄습니다. 월 API 비용 $340. 뭔가 잘못하고 있다는 신호였습니다. 지금은 같은 작업량을 $28에 처리합니다. 어떻게 했는지 공유합니다.
왜 비용이 폭발하는가
대부분의 비용 문제는 컨텍스트 낭비에서 시작됩니다. 매 요청마다 긴 시스템 프롬프트를 반복 전송하거나, 대화 히스토리 전체를 그대로 붙여넣는 방식이 주범입니다. 토큰 분포를 분석해보면 실제 응답보다 입력 토큰이 3~5배 많은 경우가 흔합니다.
실제로 효과가 있었던 방법들
1. 모델 분류 사용
모든 작업에 GPT-4o를 쓸 필요가 없습니다. 저는 작업을 세 등급으로 분류합니다. 단순 텍스트 추출, 포맷 변환, 짧은 요약은 gpt-4o-mini. 중간 복잡도의 분석과 글쓰기는 GPT-4o. 복잡한 추론이 필요한 작업만 Claude Opus나 o1을 씁니다. 이것만으로도 비용이 약 60% 줄었습니다.
2. 응답 캐싱
같은 종류의 요청이 반복된다면 응답을 캐싱하세요. Redis 없이도 파일 시스템 캐시나 데이터베이스 캐시만으로 반복 호출의 70%를 줄일 수 있습니다. 캐시 키는 시스템 프롬프트 + 사용자 입력의 해시값을 씁니다.
3. 시스템 프롬프트 최적화
시스템 프롬프트를 500토큰에서 120토큰으로 줄였습니다. 핵심 지시사항만 남기고, 예시는 Few-shot 방식 대신 사용자 메시지에 포함하는 방식으로 전환했습니다. 품질 차이는 없었습니다.
4. 배치 처리
실시간 응답이 필요하지 않은 작업은 Batch API를 활용합니다. 비용이 50% 절감됩니다. 문서 일괄 처리, 야간 분석 작업 등에 적합합니다.
5. 출력 토큰 제한
max_tokens 파라미터를 작업별로 다르게 설정합니다. 요약 작업에 max_tokens를 설정하지 않으면 필요 이상으로 길게 답하는 경우가 많습니다.
모니터링 구성
비용 절감보다 중요한 것은 지속적인 모니터링입니다. 저는 매일 토큰 사용량을 Slack으로 받습니다. 전날 대비 20% 이상 증가하면 알림이 오도록 설정했습니다. 이것 하나만으로 예상치 못한 비용 폭발을 여러 번 막았습니다.