AI API 비용이 매출을 넘지 않게 하는 설계
AI를 쓰는 서비스는 사용량에 비례해 원가가 늘어납니다. 정액제로 팔면서 설계를 안 하면 잘될수록 손해가 납니다.
AI API 비용이 매출을 넘지 않게 하려면 어떻게 설계하나요?
사용자별·일별 상한을 코드에 넣는 것이 먼저입니다. 요금제 한도만으로는 늦습니다. 그다음이 캐싱과 모델 분리입니다. 간단한 요청까지 가장 비싼 모델로 보내는 구조가 비용의 대부분을 만듭니다.
원가를 먼저 계산하세요
기능 하나가 요청당 얼마인지 계산해 두어야 합니다. 그리고 사용자당 월 몇 회를 쓸지 추정해 곱합니다.
이 숫자가 월 요금의 30%를 넘으면 위험 신호입니다.
| 항목 | 예시 계산 |
|---|---|
| 요청당 원가 | 0.02달러 |
| 사용자당 월 사용 | 300회 |
| 사용자당 월 원가 | 6달러 |
| 월 요금 | 10달러 → 원가율 60%. 위험 |
줄이는 방법 네 가지
- 모델을 나눕니다 — 분류·요약은 저렴한 모델, 정확도가 필요한 것만 상위 모델
- 캐시합니다 — 같은 입력은 다시 부르지 않습니다
- 미리 거릅니다 — 빈 입력, 중복, 너무 짧은 것은 호출 전에 차단
- 묶습니다 — 여러 건을 한 요청으로
한도를 걸어두세요
버그나 악용으로 하루에 수백만 원이 나갈 수 있습니다. 계정 단위·사용자 단위 한도를 반드시 걸어야 합니다.
그리고 일일 사용량 알림을 설정해 두면 이상을 빨리 발견합니다.
출력 길이도 비용입니다
입력만 신경 쓰고 출력을 방치하는 경우가 많습니다. 최대 출력 길이를 제한하면 비용과 응답 속도가 함께 개선됩니다.
원가 계산을 먼저 표로 만드세요
감으로 판단하면 반드시 틀립니다. 기능별로 계산해야 어디를 줄일지 보입니다.
| 기능 | 1회 원가 | 월 사용(1인) | 월 원가 |
|---|---|---|---|
| 요약 | 약 10원 | 200회 | 2,000원 |
| 분류 | 약 3원 | 500회 | 1,500원 |
| 긴 문서 분석 | 약 150원 | 20회 | 3,000원 |
| 합계 | - | - | 6,500원 |
월 요금이 9,900원이라면 원가율이 66%입니다. 여기에 서버비와 결제 수수료를 더하면 남는 것이 거의 없습니다.
모델을 나누는 것이 가장 효과가 큽니다
대부분의 요청은 어려운 작업이 아닙니다. 분류·추출·짧은 요약은 저렴한 모델로 충분한 경우가 많습니다.
정확도가 중요한 것만 상위 모델로 보내면 원가가 몇 분의 일로 줄어듭니다.
- 먼저 저렴한 모델로 처리합니다
- 결과의 확신도가 낮으면 상위 모델로 재시도
- 금액·계약처럼 틀리면 안 되는 것만 처음부터 상위 모델
- 비율을 기록해 두고 조정합니다
캐시가 두 번째로 효과가 큽니다
| 캐시 대상 | 효과 |
|---|---|
| 동일 입력 | 완전 재사용 |
| 유사 입력 | 임베딩 기반 매칭 |
| 공통 지시문 | 프롬프트 캐싱 지원 시 큰 절감 |
| 중간 결과 | 재계산 방지 |
같은 문서를 여러 번 분석하는 서비스라면 결과를 저장하는 것만으로 절반 이상이 줄어듭니다.
호출 전에 걸러내기
호출하기 전에 막는 것이 가장 싼 최적화입니다. 코드 몇 줄로 상당한 비율이 걸러집니다.
- 빈 입력이나 너무 짧은 입력
- 이미 처리한 것과 동일한 입력
- 지원하지 않는 형식
- 사용자별 한도 초과
- 명백한 자동화 트래픽
한도와 알림은 필수입니다
- 계정 단위 월 한도 — 제공사 설정
- 사용자 단위 일/월 한도 — 애플리케이션에서
- 일일 사용량 알림 — 평소의 3배 등
- 무료 플랜 별도 한도 — 가장 악용되기 쉬움
- 비정상 패턴 차단 — 초당 요청 수
출력 길이도 비용입니다
입력만 신경 쓰고 출력을 방치하는 경우가 많은데, 대부분의 모델은 출력 토큰이 더 비쌉니다.
최대 출력 길이를 제한하고, 필요한 형식만 요구하면 비용과 응답 속도가 함께 개선됩니다. JSON 형식으로 필요한 필드만 받는 방식이 효과적입니다.