코드에 적어 둔 Gemini 단가가 2027년 1월 1일에 틀어진다
scripts/proofread.py에는 모델별 단가가 MODELS 표에 들어 있습니다. 호출 뒤에 남기는 logs/proofread-usage.jsonl도 이 값을 읽어 비용을 적으므로, 코드의 단가와 실제 가격표가 어긋나면 장부는 틀린 값을 아주 조용히 쌓게 됩니다.
처음에는 flash 단가가 맞는지만 보려고 공식 가격 페이지를 열었습니다. 입력 $0.75, 출력 $3.75가 코드와 같았습니다. 그런데 같은 줄에 날짜 조건이 붙어 있었습니다. 문제는 다음 해부터였습니다.
먼저 결론부터
gemini-3.6-flash의 현재 코드 단가는 2026년 12월 31일까지의 가격과 맞습니다.- 2027년 1월 1일부터 입력과 출력 단가가 모두 두 배가 됩니다.
2026년 12월 31일까지: 입력 $0.75 / 출력 $3.75
2027년 1월 1일부터: 입력 $1.50 / 출력 $7.50
- 장부에 남은 flash 호출 3편은 현재 단가로 $0.0318이고, 새 단가를 곱하면 $0.0636입니다. 뒤 숫자는 실제 청구 금액이 아니라 단가표로 다시 계산한 값입니다.
- flash는 평소 선택하는 모델이 아니라 fallback입니다. 기본 모델 호출이 HTTP 오류나 시간 초과로 실패할 때만 넘어갑니다.
- 코드의
gemini-3-pro단가와 모델 ID는 공식 가격 페이지에서 확인하지 못했습니다.
가격표에서 날짜 조건을 발견했습니다
공식 가격 페이지를 두 번 열어 Standard · Paid Tier를 확인했습니다. gemini-3.6-flash 입력은 2026년 12월 31일까지 $0.75이고 2027년 1월 1일부터 $1.50으로 오르며, 출력도 같은 시점에 $3.75에서 $7.50으로 바뀝니다.
코드에는 날짜가 없었습니다.
"flash": {"api": "gemini", "id": "gemini-3.6-flash", "in": 0.75, "out": 3.75},
이 값은 지금은 맞습니다. 그래서 더 헷갈렸습니다. 실행이 실패하지도 않고, 장부 계산도 틀린 티가 나지 않으며, 가격표를 다시 열기 전까지는 오래된 값이라는 사실을 알 방법이 없었습니다.
출력 가격에는 생각 토큰도 포함된다고 가격 페이지에 적혀 있었습니다. 이 부분도 장부와 연결됩니다. 출력 토큰만 적은 줄을 보고 일반 응답만 계산됐다고 생각하면 안 됐습니다.
장부를 다시 곱해 보니 금액이 갈렸습니다
logs/proofread-usage.jsonl에는 flash 호출이 3건 남아 있었습니다. 입력은 4,899 토큰, 출력은 7,506 토큰이었고 장부 비용은 $0.0318입니다.
출력 7,506 토큰 가운데 추론 토큰은 7,337 토큰이었습니다. 출력 대부분이 생각 토큰이었던 셈입니다. 그런데 출력 가격은 생각 토큰을 포함합니다. 그러니 이 사용량은 출력 단가 변화의 영향을 그대로 받습니다.
같은 사용량에 2027년 단가를 넣어 계산하면 $0.0636이 나옵니다. 실제 청구서를 확인한 값은 아닙니다. 장부가 쓰는 단가표만 바꿔 곱한 값입니다.
금액이 두 배였습니다.
장부는 API가 돌려준 청구 금액을 받아 적는 파일이 아니라, 코드에 적힌 입력·출력 단가와 토큰 수를 곱해 기록하는 파일입니다. 따라서 호출 기록이 정확해도 단가표가 예전 값이면 비용 열은 계속 예전 가격을 가리킵니다.
fallback이라 더 늦게 발견할 수 있었습니다
현재 코드에서 기본 모델 호출이 HTTP 오류나 시간 초과로 실패하면 FALLBACK_MODEL = "flash"가 선택되는데, flash를 거의 쓰지 않으면 장부의 flash 행도 드물어 평소 비용을 확인할 때는 문제가 없어 보일 수 있습니다.
FALLBACK_MODEL = "flash"
기본 모델이 막힌 날에만 flash가 호출되고, 그날이 2027년 1월 1일 이후라면 같은 토큰 수의 계산 비용은 두 배가 됩니다. 따라서 오류를 복구하려고 fallback이 실행된 날에도 비용 장부는 이전 단가로 남습니다.
이런 경우에는 호출 실패 자체와 비용 오차가 다른 시간에 나타나서, 모델 호출은 살아났는데 사후에 보는 장부만 틀어진 상태가 됩니다.
단가표에는 시작일도 같이 둬야 합니다
고정 숫자만 둔 MODELS 표에는 가격 변경일을 적을 자리가 없습니다. 고치려면 flash의 입력·출력 값 옆에 적용 시작일을 둬야 합니다. 그리고 장부를 계산할 때는 호출 날짜가 어느 구간인지 골라야 합니다. 아직 코드는 바꾸지 않았습니다. 2026년 12월 31일 전에 바꿔야 할 일로 남겨 두었습니다.
그렇게 해 두면 장부를 다시 계산할 때도 호출 날짜와 단가 적용 기간을 맞춰 볼 수 있습니다.
pro 쪽은 사정이 다릅니다. 코드에는 gemini-3-pro, 입력 2.00, 출력 12.00이 들어 있습니다. 공식 페이지에서는 그 ID를 찾지 못했기 때문입니다. 페이지에는 gemini-3.1-pro-preview와 gemini-3-pro-image가 보였습니다. 이 모델 ID와 값부터 확인해야 합니다. 단가를 날짜별 표로 바꾸는 건 그다음입니다.
이번에 남은 문제는 가격 변경 자체보다 장부의 성격이었습니다. 장부가 청구서가 아니라 코드 속 단가표의 계산 결과라는 사실을 뒤늦게 확인했습니다. 가격이 바뀌는 날은 모델 호출이 깨지는 날이 아니라, 기록이 조용히 틀어지기 시작하는 날이었습니다.