AI API 요청이 갑자기 거절될 때, rate limit과 재시도 확인법

AI API 요청이 갑자기 거절될 때, rate limit과 재시도 확인법

노트북과 계산기가 놓인 책상
대표 이미지: Wikimedia Commons, CC0. 원본과 라이선스 확인

결론부터: AI API 요청이 429로 거절되면 같은 요청을 빠르게 계속 보내지 마세요. 응답 헤더의 Retry-After와 남은 요청 수·토큰을 확인하고, 잠시 기다린 뒤 제한된 횟수만 재시도해야 합니다. OpenAI는 일시적인 rate limit 오류에 Retry-After가 포함될 수 있으며 이 값 이상 기다리라고 안내합니다.[2]

429가 모두 같은 뜻은 아닙니다. 잠깐 요청이 몰린 경우에는 기다린 뒤 회복될 수 있지만 할당량·결제·권한 문제는 재시도만으로 해결되지 않습니다.[2]

rate limit은 무엇을 세나요?

OpenAI API 문서는 요청과 토큰을 여러 단위로 제한할 수 있다고 설명합니다.[2]

약어 초보자가 볼 상황
RPM 분당 요청 수 짧은 시간에 API를 여러 번 호출했는가
RPD 하루 요청 수 하루 사용량 제한에 닿았는가
TPM 분당 토큰 수 긴 입력·출력을 한꺼번에 보냈는가
TPD 하루 토큰 수 하루 누적 토큰이 많은가
IPM 분당 이미지 수 이미지 요청을 몰아서 보냈는가

제한은 조직과 프로젝트 수준에서 적용되며 모델에 따라 달라질 수 있습니다.[2] 요청 수가 적어도 입력과 출력이 긴 작업이면 토큰 제한에 먼저 닿을 수 있습니다.

429가 나왔을 때 확인하는 순서

  1. 응답 상태와 본문을 저장합니다. 상태 코드만 보지 말고 오류 메시지를 함께 확인합니다.
  2. Retry-After를 읽습니다. 값이 있으면 그 시간보다 짧게 기다리지 않습니다.[2]
  3. rate limit 헤더를 확인합니다. 최대치와 남은 요청·토큰, 리셋까지 남은 시간을 볼 수 있습니다.[2]
  4. 요청을 줄일 방법을 찾습니다. 반복 호출, 불필요하게 긴 대화 기록, 너무 큰 출력 길이를 점검합니다.
  5. 재시도 횟수와 총 대기 시간을 제한합니다. 실패 요청도 분당 제한에 영향을 줄 수 있습니다.[2]
  6. 할당량·결제·권한 오류라면 재시도하지 않습니다. 프로젝트 설정이나 결제 상태를 확인해야 합니다.[2]

헤더 이름은 보통 x-ratelimit-remaining-requests, x-ratelimit-remaining-tokens, x-ratelimit-reset-requests, x-ratelimit-reset-tokens처럼 표시됩니다. 실제 헤더는 API와 오류 종류에 따라 달라질 수 있으므로 받은 응답을 그대로 기록하세요.[2]

안전한 재시도는 어떻게 다를까?

OpenAI는 일시적인 제한을 만났을 때 지수 백오프와 작은 무작위 지연을 사용하는 방법을 설명합니다.[2] 첫 번째 재시도는 짧게 기다리고 또 실패하면 대기 시간을 늘리는 방식입니다.

공식 OpenAI SDK는 조건에 맞는 rate limit 오류를 자동으로 재시도하고 Retry-After를 따를 수 있습니다.[2] SDK를 쓰면서 별도 재시도 루프를 추가하면 재시도가 겹칠 수 있으니 기본 동작을 먼저 확인하세요.

해치의 확인 과정

2026-08-31, macOS 26.6.1과 arm64 환경에서 OpenAI 공식 Rate limits 문서를 curl로 요청해 HTTP 200 응답을 확인했습니다. RPM·TPM 설명, rate limit 응답 헤더 예시, Retry-After, 지수 백오프와 재시도 금지 대상 문장을 대조했습니다. 이 실행에서는 OpenAI API 키를 사용한 요청이나 실제 429 응답을 발생시키지 않았습니다. 이 글은 공식 문서 기준을 초보자용 순서로 정리한 것입니다.

이런 분께 필요합니다

  • 직접 만든 AI 앱에서 가끔 429 오류가 나오는 분
  • 같은 요청을 반복하다가 사용량이 더 늘어나는 문제를 막고 싶은 분
  • 요청 수 제한과 토큰 제한을 구분하고 싶은 분

일반 ChatGPT 화면 사용 중 오류라면 API 코드의 재시도 로직을 고칠 수 없습니다. 이 글의 기준은 API 응답을 직접 다루는 경우에 적용됩니다.

자주 묻는 질문

429가 나오면 몇 초 뒤에 다시 보내야 하나요?

응답에 Retry-After가 있으면 그 값 이상 기다리고, 없으면 제한된 지수 백오프를 사용하세요.[2]

실패한 요청도 사용량에 포함되나요?

OpenAI 문서는 실패한 요청도 분당 제한에 영향을 줄 수 있다고 안내합니다.[2]

API 키를 새로 만들면 rate limit이 풀리나요?

그렇게 가정하면 안 됩니다. rate limit은 조직·프로젝트 수준에서 정의될 수 있고 모델별 제한도 다릅니다.[2]

초보자 체크리스트

  • ☐ 상태 코드와 오류 본문을 함께 기록했습니다.
  • Retry-After가 있는지 확인했습니다.
  • ☐ 요청 수 제한과 토큰 제한을 구분했습니다.
  • ☐ 재시도 횟수와 총 대기 시간에 상한을 뒀습니다.
  • ☐ 공식 SDK가 이미 재시도하는지 확인했습니다.
  • ☐ 결제·할당량·권한 오류는 반복 재시도하지 않았습니다.

관련 글

다음 행동

다음 429 오류가 나오면 재시도 버튼부터 누르지 말고 응답 헤더와 본문을 저장하세요. Retry-After가 있으면 기다리고, 결제·할당량 오류인지 먼저 구분하면 됩니다.

공식 출처

OpenAI API: Rate limits[2]

Haechi

컴퓨터와 AI, 디지털기기에 관심을 가지고 새로운 기술과 제품을 직접 확인하여 초보자도 쉽게 이해할 수 있도록 정리합니다.

You may also like...