IT/CS

[CS] API Throttling 이란?

어린이개발자 2026. 4. 24. 13:34

이번엔 API Throttling 개념에 대해 정리하고자 한다.

 

1. 정의

- 클라이언트가 일정 시간 동안 호출할 수 있는 API 요청 수를 제한하는 것

 

2. 목적

- 서버 보호

  > 트래픽 폭주 -> 서버 다운 방지

- 공정한 사용

  > 특정 유저가 API 를 독점하는 것을 방지

  > SaaS 서비스에서 중요

- 비용 절감

- 보안

  > brute-force 공격, DDoS 완화

 

3. 대표 알고리즘

- Fixed Window

  > 구현 쉬움

  > 경계에서 burst 발생

- Sliding Window

  > 요청 시간을 기준으로 계속 이동

  > 더 정밀하고, 구현 복잡

- Token Bucket

  > 토큰이 일정 속도로 채워짐

  > 요청할 때 토큰 소비

  > burst 허용 (유연함)

  > 안정적인 트래픽 제어

- Leaky Bucket

  > 일정 속도로만 요청 처리

  > 큐 기반

  > 트래픽 평탄화

 

4. 구현 방식

- 핵심 포인트 [ "누구 기준으로 제한할 것인가?" ]

  > IP (가장 단순)

  > User ID (로그인 기반)

  > API Key (외부 서비스)

  > JWT claim (MSA 에서 많이 사용)

- 저장소

  > Redis

    . 빠름 / TTL 지원 / 분산 환경 적합

 

5. 참고

- Rate Limiting 과의 비교

  > Rate Limiting 은 일정 요청 수가 초과하면 차단하는 것이고, Throttling 은 속도를 늦추거나 제한하는 것

'IT > CS' 카테고리의 다른 글

[CS] 테스트 커버리지란?  (0) 2026.06.12
[CS] DDD(Domain-Driven Design) 란?  (0) 2026.06.03
[기타] LDAP(Lightweight Directory Access Protocol) 란?  (0) 2026.02.16
[CS] Front Proxy vs. Reverse Proxy  (0) 2025.10.03
[CS] Rate Limit 이란?  (0) 2025.07.01