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. 기타
- 중요한 요청은 우선순위 큐 또는 예외 처리 로직 고려
'IT > CS' 카테고리의 다른 글
[CS] gRPC(Google Remote Procedure Call) 란? (1) | 2025.06.19 |
---|---|
[CS] SOAP(Simple Object Access Protocol) 이란? (2) | 2025.06.08 |
[기타] SEO(Search Engine Optimization, 검색 엔진 최적화)란? (0) | 2025.04.20 |
[CS] 쓰레싱(Thrashing) 이란? (0) | 2025.04.19 |
[CS] 객체 지향 설계 5가지 원칙 - SOLID (0) | 2025.03.16 |