무료 AI 코딩 에이전트는 며칠 버틸까, ChatGPT Codex 쿼터 100% 소진 실측
들어가며
무료로 쓰던 AI 코딩 에이전트가 어느 날 갑자기 429 에러를 뱉기 시작했다. ChatGPT 무료 플랜의 Codex 쿼터를 실제로 100% 소진한 과정과, 사용량 API로 추적한 실측 데이터를 공유한다. 결론부터 말하면, 무료 플랜은 하루 종일 에이전트를 돌리면 30일 쿼터가 며칠 만에 바닥난다.
핵심 개념
Codex는 OpenAI가 제공하는 코딩 에이전트 CLI다. ChatGPT 무료 플랜에서도 OAuth 로그인만 하면 일정 쿼터 안에서 제한된 모델을 쓸 수 있다. 쿼터는 30일 단위 사용량 윈도우로 관리되며, 계정 사용량 API(chatgpt.com/backend-api/wham/usage)로 used_percent와 limit_reached, reset_at을 확인할 수 있다. 쿼터를 다 쓰면 429 usage_limit_reached 에러가 나고, 리셋 시각이 지나야 다시 쓸 수 있다.
무료 플랜에서 사용 가능한 모델은 gpt-5.6-terra, gpt-5.6-luna, gpt-5.5, gpt-5.4-mini, codex-auto-review다. gpt-5.6-sol이나 pro 전용 모델은 무료 플랜에서 호출이 차단된다.
한 가지 중요한 점은, 공식 가격 페이지에서 무료 플랜 한도를 "제한적 체험 접근" 정도로만 표현할 뿐 정확한 수치를 공개하지 않는다는 것이다. 그래서 계정 사용량 API가 사실상 유일하게 정확한 사용량을 확인하는 방법이다.
준비물
- ChatGPT 무료 플랜 계정 (openai-codex OAuth 로그인)
- codex CLI (터미널에서 로그인 상태 확인)
- 사용량 확인용 API 호출 도구 (curl 또는 에이전트 프레임워크)
- 사용량 자동 기록용 크론 (선택)
단계별 본문
1단계. 계정 사용량 확인
chatgpt.com/backend-api/wham/usage 엔드포인트로 계정 단위 사용량을 조회한다. 인증은 OAuth 토큰을 Authorization 헤더에 넣고, User-Agent는 codex-cli로 지정한다. 응답에서 plan, allowed, used_percent, limit_reached, reset_at 필드를 확인한다.
확인: used_percent가 100이고 limit_reached가 true면 쿼터 소진. reset_at으로 리셋 시각을 알 수 있다.
2단계. 사용량 자동 추적 설정
하루 1회 크론으로 스냅샷 CSV를 기록한다. 필드는 ts, plan, allowed, limit_reached, used_percent, limit_window_seconds, reset_after_seconds, reset_at_utc다. 여기에 에이전트 세션 DB에서 일별 토큰 집계(api_calls, input_tokens, output_tokens, cache_read_tokens, reasoning_tokens)를 더하면 계정 쿼터와 실제 토큰 소비를 함께 볼 수 있다.
확인: CSV에 날짜별 사용량 변화가 쌓이는지 확인.
3단계. 사용량 변화 관찰
실측 예시다. 2026-08-17 오전 07시 10분 기준 사용량은 6%였다. 그런데 같은 날 09시에는 94%, 11시 49분에는 100%가 됐다. 즉 하루 아침 사이에 쿼터가 급격히 소진됐다. 이 패턴의 원인은 에이전트가 반복 호출을 하면서 cache_read 토큰이 크게 쌓였기 때문이다. 실제 세션 통계에서 전체 입력 토큰의 12배에 달하는 캐시 읽기 토큰이 기록됐다. 컨텍스트가 큰 세션을 오래 유지하면 같은 내용을 반복해서 읽기 때문에 쿼터 소모가 빠르다.
확인: 사용량 급증 시점과 코딩 작업 시간이 맞는지 대조해 보면 소비 패턴이 보인다.
4단계. 소진 상태 확인
사용량 100%가 되면 allowed가 False로 바뀌고, 이후 모델 호출은 429 usage_limit_reached로 차단된다. 리셋 시각은 2026-09-10 21:00 KST(UTC 12:00)로, 30일 윈도우 기준 약 24일이 남은 시점이었다. 무료 플랜의 사용량 윈도우가 30일이므로, 리셋은 월초가 아니라 마지막 사용 시점 기준이라는 점도 확인했다.
확인: 무료 플랜 모델 호출이 전부 429로 차단되는지 테스트.
5단계. 리셋 대기와 대응
리셋 시각까지 기다리거나, 유료 플랜이나 다른 제공자로 전환한다. 에이전트 프레임워크에서 fallback provider를 지정해 두면 주 모델이 차단돼도 작업이 중단되지 않는다. 실제로 이 글도 주 모델이 쿼터 소진으로 차단된 뒤, fallback 모델로 작성 중이다. 미리 fallback을 설정해 두지 않았다면 소진 시점에 모든 자동화가 멈췄을 것이다.
확인: fallback으로 정상 응답이 오는지 확인.
보안/주의
- 사용량 API는 계정 OAuth 토큰을 사용하므로 토큰을 외부에 노출하지 말 것. 코드에 하드코딩 금지, 환경변수나 인증 저장소 사용.
- 무료 플랜은 모델이 제한된다. Pro 전용 모델(gpt-5.6-sol, pro 모델)을 호출하면 차단된다.
- OAuth 토큰은 약 10일 주기로 만료된다. 재인증이 필요할 수 있다.
- 사용량 API 경로에 /codex 세그먼트를 붙이면 404가 난다. 정확한 경로는 backend-api/wham/usage다.
트러블슈팅
1. wham/usage가 404를 반환한다면? URL 경로를 확인한다. backend-api/wham/usage가 정확하고, /codex를 붙이면 404다.
2. Cloudflare 403 챌린지가 뜬다면? User-Agent를 codex-cli로 지정하고 재시도한다. 일반 브라우저 UA로는 차단될 수 있다.
3. 사용량이 0%로 보이는데 호출이 안 된다면? 토큰이 만료됐을 수 있다. 재인증 후 다시 확인한다.
4. 재인증 후에도 401이면? OAuth 토큰이 싱크되지 않았을 수 있다. 인증 저장소의 토큰을 갱신된 것으로 교체한다.
5. 사용량이 급격히 오르는 게 걱정된다면? cache_read 토큰이 큰 원인일 수 있다. 컨텍스트를 줄이거나 세션을 자주 초기화한다.
6. 무료 플랜 한도가 정확히 얼마인지 궁금하다면? 공식 페이지는 수치를 공개하지 않는다. wham/usage API로 used_percent를 직접 조회하는 것이 정확한 방법이다.
마무리
무료 플랜 Codex는 가벼운 코딩 작업에는 훌륭하다. 하지만 하루 종일 에이전트를 돌리면 30일 쿼터가 며칠 만에 바닥난다. 사용량을 자동으로 추적해 두면 소진 시점을 예측하고, fallback을 미리 설정해 두면 차단돼도 작업을 이어갈 수 있다. 무료 플랜의 실체가 궁금했다면 이 글이 참고가 됐길 바란다.
0 댓글