정의
특정 기간 동안 사용자가 할 수 있는 API 요청의 수를 제한하는 프로세스입니다.
서버를 오프라인으로 전환하거나 서버 또는 다른 시스템의 과부하를 방지하기 위해 API 호출에 지연을 삽입하여 수동으로 수행할 수 있습니다.
API는 사용자와 소프트웨어 애플리케이션 사이의 게이트웨이 역할을 한다.
예를 들어, 사용자가 소셜 미디어에서 게시 버튼을 클릭하면 버튼 클릭이 API 호출을 트리거 한다. 이 API는 소셜 미디어 애플리케이션의 웹 서버와 상호 작용하여 게시 작업을 수행합니다. 이 사용자는 사람 또는 다른 소프트웨어 응용 프로그램 일 수 있습니다.
API 쓰로틀링은 API가 처리할 수 있는 트래픽 양을 제어하는 데 사용되는 속도 제한 유형입니다. API가 주어진 시간 동안 수락할 요청 수를 제한하는 방법입니다. 이 방법은 구현하기가 더 쉽습니다. 스로틀링은 API의 백엔드가 네트워크 또는 하드웨어(예: 데이터베이스 또는 서버)에 의해 제한되는 상황에서 흔히 사용되는 방법입니다.
왜 필요한가?
시스템 성능 저하 방지
사용자 수가 증가함에 따라 API 호출이 많아지기 때문에 웹 사이트 또는 모바일 응용 프로그램이 성능 저하의 징후를 보이기 시작합니다. 더 나은 환경이나 더 빠른 연결, 인터페이스를 가진 사용자는 다른 사용자보다 더 나은 환경을 얻을 수 있습니다. API 쓰로틀링은 조직이 API를 공정하게 사용할 수 있도록 지원하는 솔루션이다.
악의적 요청에 따른 서비스 과부하 방지
또한 API 쓰로틀링은 악의적인 사용자가 웹 사이트 또는 모바일 응용 프로그램을 다운시키기 위해 엄청난 양의 요청을 보내는 서비스 거부(DoS) 공격을 방지하는 데 도움이 된다.
쓰로틀링 알고리즘
- 클라이언트/사용자는 웹 서비스 또는 응용 프로그램과 인터페이스하는 API를 호출한다.
- API 쓰로틀링 로직은 현재 요청이 허용된 API 호출 수를 초과하는 지 확인합니다.
- 요청이 제한 범위 내에 있는 경우 API는 정상적으로 수행되며, 사용자의 작업을 완료합니다.
- 요청이 제한을 초과하면 API는 사용자에게 오류 응답을 반환합니다.
- 사용자는 사전 허용된 기간 동안 기다리거나, API Call 을 하기 위해 비용을 지불해야 합니다.
3줄 개인 생각
쓰로틀링이란 API 호출이 과도하게 많아져 시스템에 저하를 일으키는 것을 미연에 방지하는 것으로 이해가 간다.
어떻게? 특정 기간 내의 API 호출 수를 제한하고 호출 사이사이에 지연을 넣어서
API rate limit이랑은 뭐가 다르지? 라는 생각이 드는 데 나중에 작성 해봐야겠다.
[참조] :
'CS 지식' 카테고리의 다른 글
분산 트랜잭션이란? (0) | 2023.05.01 |
---|---|
DPU란? (0) | 2023.04.30 |
SQL과 NoSQL이란? (0) | 2022.07.31 |
트랜잭션이란? (0) | 2022.07.03 |
Batch란? (0) | 2022.07.03 |