토큰 버킷은 최대 용량까지 토큰을 일정 속도로 보충합니다. 요청 하나가 토큰 하나를 쓰며, 버킷이 비면 요청을 거절하거나 기다리게 합니다. 남은 토큰을 모아 두면 짧은 요청 폭주를 허용할 수 있습니다.
데모에서는 요청이 들어올 때 토큰이 줄고 잠시 뒤 다시 차오릅니다. 실제 API에서는 사용자를 식별하는 키, 분산 저장소의 원자적 갱신, 거절 시 재시도 안내도 함께 설계해야 합니다.
언제 쓰나
공개 API의 남용을 줄이면서 정상 사용자의 짧은 요청 묶음은 허용할 때 사용합니다.