나는 일주일 동안 모든 LLM API 호출을 추적했는데, 65%가 불필요했다

발행: (2026년 4월 20일 PM 09:23 GMT+9)
6 분 소요
원문: Dev.to

Source: Dev.to

LLM API 호출 추적

저는 코딩 작업—리팩터링, 코드 리뷰, 아키텍처 질문, 디버깅—에 GPT‑5와 Claude를 API로 사용하고 있었습니다. 청구서가 $150 / 월을 넘어서고 있었는데, 어떤 호출이 실제로 비용을 정당화하는지 전혀 알지 못했습니다.

프로바이더 대시보드는 총 사용 토큰 수와 지출 금액을 보여주지만, 어느 특정 호출이 불필요했는지는 알려주지 않습니다. “auth 미들웨어가 어디 있나요”라는 $2.80 요청이 GPT‑4o에 보낼 가치가 있었을까요?

그래서 추적기를 만들었습니다.

llm-costlog 라이브러리

LLM API 호출을 감싸고 다음을 기록하는 작은 Python 라이브러리입니다:

  • 프롬프트 + 완성 토큰
  • USD 기준 비용 (40개 이상의 모델에 대한 내장 가격)
  • 경로 – API로 보냈는지, 로컬에서 처리했는지
  • 의도 – 어떤 종류의 요청인가? (코드 조회, 아키텍처 질문, 디버깅 등)

통합 방법

# llm_cost_tracker.py
from llm_cost_tracker import CostTracker

tracker = CostTracker("./costs.db")

tracker.record(
    prompt_tokens=847,
    completion_tokens=234,
    model="gpt-4o-mini",
    provider="openai",
    intent="code_lookup",
)

다섯 줄만 있으면 모든 요청을 로깅할 수 있습니다.

낭비 분석 결과

일주일 동안 모든 것을 추적한 결과:

  • 총 비용: $0.2604
  • 외부 API 호출의 **65 %**가 LLM이 전혀 필요하지 않은 작업(심볼 조회, 설정 확인, “이 함수는 어디에 정의돼 있나요”, 파일 검색) 때문이었습니다.
  • 실제 상황에서 더 큰 컨텍스트(요청당 2 K–8 K 토큰)를 사용한다면, 65 % 회피율은 상당한 비용 절감으로 이어집니다.
    • 월 $150 을 LLM API에 쓰고 그 중 65 %가 회피 가능하다면, 대략 $100 / 월이 낭비되는 셈입니다.

낭비가 존재한다는 사실을 아는 것이 1단계; 이를 자동으로 해결하는 것이 2단계입니다.

promptrouter – 자동 낭비 감소

코드와 LLM API 사이에 위치하는 게이트웨이입니다. 각 프롬프트에 대해 다음과 같이 결정합니다:

DecisionAction
로컬에서 답변 가능? (심볼 조회, 설정 확인, 파일 검색)즉시 처리, $0 비용
LLM이 필요? (아키텍처 질문, 코드 리뷰, 복잡한 디버깅)컨텍스트를 압축해서 API에 전송 (가장 관련성 높은 3‑5 파일만)

라우팅 로직

  • 키워드 분류 + 구문 감지 (비ML, 테스트한 22가지 프롬프트 유형에 대해 100 % 정확).

코드 검색

  • BM25 텍스트 매칭 + 선택적 의미 검색 (sentence‑transformers, all‑MiniLM‑L6‑v2).
  • 혼합 스코어링: 60 % BM25 + 40 % 의미 유사도.

AST 분석

  • Python 및 TypeScript/JavaScript에 대한 전체 호출 그래프와 import‑dependency 추적.
  • TS/JS는 정규식 기반, Python은 ast 모듈 사용.
  • 두 언어 모두 외부 종속성 없이 구현.

Git 통합

  • 최신 커밋, blame, diff를 컨텍스트로 제공—“누가 언제 변경했는지” 때문에 토큰을 소모하지 않음.

비용 추적

  • 제공자의 사용 블록에서 실제 토큰 수를 가져와 SQLite 기반 원장에 기록.
  • 40개 이상의 모델을 포괄하는 내장 가격표 사용.

LLM 클라이언트

  • OpenAI, Anthropic, Ollama 및 순수 HTTP 기반 OpenAI 호환 엔드포인트 지원.
  • SDK 의존성 없음.

두 도구 모두 zero‑dependency (표준 라이브러리만) 로 핵심 기능을 제공하며, 임베딩 및 정밀 토크나이제이션은 선택적 부가 기능입니다.

설치

llm-costlog

pip install llm-costlog

GitHub:

promptrouter

pip install promptrouter

GitHub:

두 프로젝트 모두 MIT 라이선스로 배포됩니다. 피드백, 이슈, 별점 모두 환영합니다—첫 오픈소스 릴리스이며 사용자 의견을 반영해 빠르게 개선하고 있습니다. Reddit 댓글러가 TypeScript 지원과 낭비 점수 추세 기능을 요청했으며, 두 기능 모두 24시간 이내에 배포되었습니다.

0 조회
Back to Blog

관련 글

더 보기 »