VibeDaily
← 목록
툴소개트러블슈팅

자리 비운 사이 얼마 쓸지 무섭다면 — 지출 상한 걸어두기

2026.09.08👁 4

9월 14일 주간 한도 축소가 일주일 앞이에요. 큰 작업을 시켜놓고 자리를 비우면 얼마나 쓸지 모르는 게 제일 불안하죠. 미리 상한을 걸어두는 옵션이 있어서 직접 걸어봤습니다.

--max-budget-usd

이 작업에 최대 얼마까지 쓸지 정해두는 옵션이에요. 대화창 없이 한 번만 실행하는 -p 모드에서만 동작합니다.

# 이 작업에 최대 얼마까지 쓸지 정해둬요
# -p 는 대화창 없이 한 번만 실행하는 옵션이고
# 지출 상한은 이 -p 모드에서만 동작해요
claude -p --output-format json \
  --max-budget-usd 0.50 \
  "저장소를 점검해줘" > 결과.json
 
# 상한에 걸려 멈췄는지 확인해요
python3 - <<'PY'
import json
# 방금 저장한 결과를 열어요
d = json.load(open("결과.json"))
# 상한에 걸리면 error_max_budget_usd 예요
print("종료 사유", d.get("subtype"))
# 실제 쓴 돈이에요. 상한보다 클 수 있어요
비용 = d.get("total_cost_usd", 0)
print("실제 비용", round(비용, 4))
PY

상한에 걸리면 작업이 멈추고, 결과의 subtype이 error_max_budget_usd로 나와요. 종료 코드도 1이라 스크립트에서 바로 알아챌 수 있습니다.

실제로 걸어봤어요

같은 작업에 상한만 바꿔가며 돌렸어요. 상한은 지켜지긴 하는데, 정확하진 않았습니다.

지출 상한 대비 실제 비용 배수를 보여주는 막대그래프. 상한 14원일 때 4.33배, 70원 1.13배, 280원 1.01배, 700원은 상한에 걸리지 않고 0.72배로 완료

  • 상한 14원 → 실제 61원어치 썼어요 (4.33배)
  • 상한 70원 → 실제 79원 (1.13배)
  • 상한 280원 → 실제 282원 (1.01배)
  • 상한 700원 → 실제 507원. 이건 상한에 걸리지 않고 작업이 끝났어요

여기서 금액은 모두 Claude Code가 쓴 토큰을 API 정가로 계산한 값이에요. 상한도 같은 잣대로 재요. 구독이라면 이만큼 청구되지는 않고, 플랜 한도에서 빠져요.

상한을 낮게 잡을수록 더 많이 넘겼어요. 넉넉히 잡으면 아예 안 걸리고요. (1달러 1,400원 기준)

왜 이렇게 되냐면요

턴이 끝나야 멈추기 때문이에요. AI가 한 번 생각하고 답하는 단위를 턴이라고 하는데, 이 옵션은 턴이 끝난 뒤에 "여기까지 얼마 썼지?"를 확인해서 상한을 넘었으면 다음 턴을 시작하지 않습니다.

그런데 첫 턴 하나가 이미 60원쯤 들어요. 그러니 14원짜리 상한은 지켜질 방법이 없죠. 반대로 280원처럼 여유 있게 잡으면 오차가 1%까지 줄어듭니다.

정밀한 차단기가 아니라 누전 차단기에 가까워요. 폭주를 막아주지 실비를 딱 맞춰주진 않습니다.

그래서 이렇게 쓰세요

  • 한 턴 값보다 훨씬 크게 잡으세요. 최소 다섯 배는 되어야 의미가 있어요
  • 넉넉히 잡아도 손해가 없어요. 작업이 그 전에 끝나면 상한은 그냥 안 걸립니다
  • 내 작업의 한 턴이 얼마인지는 사용량을 재보면 바로 나옵니다
  • 자동화 스크립트에 걸어두면 특히 좋아요. 밤새 도는 작업이 폭주해도 거기서 끊깁니다
  • 대화형으로 쓸 땐 못 걸어요. -p 전용이에요

확인된 것과 짚어둘 것

확인된 것 — 옵션은 claude --help에 실제로 있고, 상한 초과 시 error_max_budget_usd로 멈추는 것까지 직접 확인했어요. 설치본은 2.1.263입니다.

짚어둘 것 — 위 배수는 제가 돌린 네 번의 실행에서 나온 값이에요. 작업 종류와 환경에 따라 달라집니다. 특히 한 턴 값이 크면 초과 폭도 커져요.

지출 상한 걸어보실 분 계세요? 카톡 오픈채팅 ⚡ AI랑 코딩하는 사람들에 후기 들려주세요.

오늘 글, 도움이 되셨나요?