API 일일 한도 관리: 시도 횟수와 성공 횟수 나누기
API 한도 카운터는 제공자의 계산 기준에 맞춰야 하며, 실패 요청도 한도에 포함될 수 있습니다.
어떤 상황에서 적용하나요?
아래는 실행 전에 남은 요청 수를 확인하는 로컬 예제입니다. 예제의 limit=3은 설명용이며 실제 서비스의 일일 한도를 뜻하지 않습니다.
검증 범위: 아래 코드는 외부 서비스에 요청하지 않는 로컬 예제입니다. 실제 서비스 연결은 별도로 검증해야 합니다.
최소 예제로 동작 확인하기
class Budget:
def __init__(self, limit):
self.limit = limit
self.attempted = 0
def reserve(self):
if self.attempted >= self.limit:
return False
self.attempted += 1
return True
budget = Budget(3)
results = [budget.reserve() for _ in range(4)]
assert results == [True, True, True, False]
print(results)
결과는 어떻게 확인하나요?
네 번째 시도는 허용되지 않습니다. 요청이 실제로 성공했는지는 별도로 기록하세요. 재시도를 추가한다면 재시도도 reserve를 거쳐야 시도 수가 누락되지 않습니다.
실제 업무에 적용할 때 확인할 점
프로세스가 여러 개면 메모리 카운터만으로 일관성을 보장할 수 없습니다. 영속 저장소와 원자적 차감을 사용하고, 일일 한도가 초기화되는 시간대를 확인하세요. 분당·계정별·프로젝트별 한도가 동시에 있을 수 있으므로 하나의 sleep 값으로 모두 대체하지 않습니다.
공식 자료와 다음 단계
관련 공식 문서에서 사용하는 버전의 기능과 제한을 확인하세요.
학습 경로: API·운영 가이드 · 인증 오류 확인
작성: 로그 · 2026-10-17 수정: 확인되지 않은 경험담과 성능 보장 표현을 제거하고 예제·적용 조건·공식 근거를 보완했습니다.
댓글
댓글 쓰기