[IT회사에서 살아남기] 스로틀링(Throttling)이란?
개발자와 회의를 하다보면 나오는 이야기 중 "스로틀링"이 있습니다.
-스로틀링을 제한하면요?
-스로틀링을 확대할 수 있나요?
그래서 스로틀링이 무엇인가요?
일반적으로, PC, 노트북, 모바일 기기의 CPU, GPU 등이 지나치게 과열될때 기기의 손상을 막고자 클럭과 전압을 강제적으로 낮추거나 강제로 전원을 꺼서 발열을 줄이는 기능을 의미합니다.
저는 보통 API 스로트링을 논의하는데요./
API 스로틀링은 무엇일까요?
이를 설명하기 전에 API Gateway에 대해 설명하려고 합니다.
API Gateway?
Gateway는 MSA의 패턴 중 하나로, API를 사용하는 고객(이용자)와 Server의 사이에 위치하여 다양한 목적으로 사용됩니다.
*인증 및 권한을 부여
*서비스 검색을 통합
*속도 제한
*로깅을 반영하여 추적을 하거나
* IP허용 목록에 추가하여 사용을 제한/ 허가한다거나
등의 목적으로 사용될 수 있습니다.
참고: https://microservices.io/patterns/apigateway.html
API Throttling?
인터넷 서비스 제공업체 (ISP)가 고객/셀러의 호출량을 제한하거나 요청 속도를 제한하는 기능입니다. 보통 Rate limit라는 내용으로 설명하기도 합니다.
저는 보통 보안팀과 일을 하면서 API 이용의 제한 정책(Rate limit)를 이야기하곤 했습니다.
즉, 사용량을 무제한으로 열어두면 Dos(Denial of Service)와 같은 공격이 이어질 때 차단을 하기 어렵고, API서버를 열어두는 입장에서는 사용성을 무한대로 운영해야 합니다. 이는 서버운영비용 등을 생각해보면 비효율적인 내용입니다.
참고로 API는 Application Programming Interface의 줄임말로, Application은 고유한 기능을 가진 모든 소프트웨어를 의미합니다. 보통 인터페이스는 A와 B 서비스/시스템간의 연결로, 서비스 계약으로 볼 수 있습니다.
저는 IT 개발자들이 사용하는 용어가 궁금하면 개발자의 기초서적을 이용하거나, 구글링하기도 합니다.
보통 네이버보다는 구글링이 더 자세한 내용이 나오는 것 같습니다. (경험상..!)
다음에는 또 다른 IT 용어를 정리해보도록 하겠습니다 :)