IT/CS

[CS] Rate Limit 이란?

어린이개발자 2025. 7. 1. 22:02

API Rate Limit 에 대해 정리하고자 한다.

 

1. 개념

- 클라이언트가 일정 시간 동안 서버에 보낼 수 있는 요청 수를 제한하는 정책

- Rate: 일정 시간 동안 허용되는 요청 수 

- Limit: 클라이언트에게 부여된 최대 요청 횟수

- Window: 제한이 적용되는 시간 간격

 

2. 필요 이유 

- 과도한 요청 방지 (DDoS, 무한 루프, 크롤러 등)

- 자원 보호 및 안정적인 서비스 제공

- 공정한 자원 배분 (모든 유저가 일정량의 요청만 가능)

- 비용 관리

 

3. 주요 알고리즘

1) Fixed Window

- 고정된 시간 창 기준으로 요청 수 카운트

- 단순하지만 경계 시점에 요청이 몰릴 수 있음

2) Sliding Window

- 시간 창을 계속 이동하면서 계산

- 좀 더 정밀한 제어 가능

3) Token Bucket

- 일정 속도로 토큰이 채워짐, 요청 시 토큰 하나 소모
- Burst(갑작스런 요청) 허용 가능

4) Leaky Bucket

- 큐처럼 동작, 일정 속도로 요청 처리

-  속도 제어에 초점, 과도한 요청은 대기 또는 드롭

 

4. 구현 위치

- API Gateway, Web Application Firewall (WAF), Application 레벨 (코드 내)

 

5. 기타

- 중요한 요청은 우선순위 큐 또는 예외 처리 로직 고려