처리율 제한 장치는 클라이언트 또는 서비스가 보내는 트래픽의 처리율을 제어하기 위한 장치다.
HTTP로 예를 들면 이 장치는 특정 기간 내에 전송되는 클라이언트의 요청 횟수를 제한한다.
API 요청 횟수가 제한 장치에 정의된 임계치를 넘어서면 추가로 도달한 모든 호출은 처리가 중단된다.
API에 처리율 제한 장치를 두면 좋은 점
- DoS 공격에 의한 자원 고갈을 방지할 수 있다.
- 비용을 절감한다.
- 제한을 둠으로써 서버를 많이 둘 필요가 없어지며, 우선순위가 높은 API에 더 많은 자원을 할당 가능!
- 또한 제 3자 API에 사용료를 지불하고 있는 회사들에게 아주 중요하다.
- 서버 과부하를 막는다.
1단계. 문제 이해 및 설계 범위 확정
처리율 제한 장치를 구현하는 데는 여러 가지 알고리즘이 있는데, 각각 고유한 장단점이 있다.
면접관과 소통하며 어떤 제한 장치를 구현해야 할 지 분명히 해보자.
- 클라이언트 측 제한 장치인지? 서버 측 제한 장치인지?
- IP 주소를 기준으로 제한 할 지? 아니면 사용자 id 등의 다른 기준이 있는지?
- 시스템 규모는 얼마나 되는지? 분산 환경에서도 동작해야 하는지?
- 처리율 제한 장치가 독립된 서비스인지?