트로틀링이란?

제한은 클라우드 API가 특정 기간에 수행할 수 있는 요청 수를 제한하는 데 사용하는 기술입니다. 제한을 사용하면 API를 모든 사용자가 사용할 수 있고 응답성이 유지됩니다. 또한 단일 사용자가 너무 많은 리소스를 사용하지 못하게 합니다.

여러 가지 방법으로 속도 제한을 경험할 수 있습니다. 한 가지 일반적인 방법은 HTTP 상태 코드를 사용하는 것입니다. 예를 들어 허용된 요청 수를 초과하면 API가 429 Too Many Requests 상태 코드를 반환할 수 있습니다. 이 응답은 특정 기간에 너무 많은 요청을 보냈으며 요청 속도를 늦춰야 함을 나타냅니다. 모든 API가 429을(를) 사용하는 것은 아닙니다. GitHub도 403로 응답할 수 있으며, Anthropic은 전체 API에 과부하가 걸리면 529를 사용합니다.

상태 코드 외에도 일부 API는 응답 헤더 또는 본문에 자세한 정보를 제공합니다. 예를 들어 Retry-After 헤더를 사용하여 다른 요청을 하기 전에 대기해야 하는 시간을 나타낼 수 있습니다.

사용하는 API의 스로틀링 제한에 대해 알고 있어야 하며, API에 부하가 많이 걸릴 때도 앱이 응답성과 안정성을 유지할 수 있도록 앱에서 스로틀링을 처리하는 방법을 알고 있어야 합니다.

스로틀링이 앱에 미치는 영향

API가 앱의 요청을 제한하고 앱이 이를 처리하지 않으면 앱이 충돌하거나, 일반적인 오류를 표시하거나, 너무 빨리 다시 시도하여 제한된 상태를 유지하거나, 알림 없이 데이터를 누락합니다. API가 빠르고, 사용자가 당신뿐이고, 테스트 데이터가 작기 때문에 개발하는 동안 이 중 어느 것이라도 거의 보지 못합니다.

앱이 제한을 처리하는지 테스트하는 방법

Approach 찾은 내용 놓친 항목
프로덕션 대기 실제 스로틀링 사용자가 누를 때까지 모든 것
테스트에서 API를 목 처리하거나 코딩 에이전트가 목을 작성하게 하세요 재시도 분기 실행 여부 API의 실제 상태 코드, Retry-After 헤더 및 오류 본문, 그리고 SDK의 재시도 정책 또한 모의 항목에 도달하려면 앱에 테스트 전용 스위치가 필요합니다.
제한이 걸릴 때까지 실제 API를 호출하세요 실제 동작 요청 시 제한을 트리거할 수 없으며 실제 할당량을 소진합니다.
앱의 실제 트래픽을 가로채고 스로틀링을 시뮬레이션합니다. 실제 URL, 실제 SDK 및 재시도 정책 및 앱이 오래 대기 Retry-After 하는지 여부 격리된 코드입니다. 그건 단위 테스트로 확인하세요.

앱에서 직접 사용해 보기

Dev Proxy는 선택한 API에 대한 스로틀링 응답을 반환하고 앱은 실제 URL을 계속 호출합니다. 또한 Retry-After 시간이 끝나기 전에 앱이 API를 다시 호출하는 경우를 알려줍니다.

앱이 호출하는 API에 대한 사전 설정을 다운로드하고, 이를 사용하여 Dev Proxy를 시작합니다.

devproxy config get microsoft-graph-rate-limiting
devproxy --config-file "~dataFolder/configs/microsoft-graph-rate-limiting/.devproxy/devproxyrc.json"
API Preset
Microsoft Graph(OneDrive 및 SharePoint: /drive, /shares, /sites) microsoft-graph-rate-limiting
GitHub github-rate-limiting
OpenAI openai-throttling
Anthropic anthropic-throttling

다른 API의 경우 내 애플리케이션이 스로틀링을 올바르게 처리하는지 테스트를 참조하세요. 개발 프록시를 설치하려면 개발 프록시 설정을 참조하세요.

다음 단계