본문 바로가기
IT 정보/용어

스로틀링이란? 자동차에서 온 용어 스로틀링의 의미

by 희품 2025. 3. 20.
반응형

스로틀(Throttle)이라는 단어가 있다.
스로틀은 원래 자동차 엔진에서 연료 공급을 조절하는 기능을 한다.

스로틀링은 무슨 일을 하기에, 쓰로틀링이라고 하면 자동차가 아니라 웹 개발이나 네트워크 같은 IT 쪽 용어가 먼저 튀어나오게 되는 걸까?

 

스로틀링(Throttling)이란?

스로틀링은 시스템의 안정성을 유지하고 과부하를 방지하기 위해, 요청이나 작업 속도를 제한하는 기술을 의미한다. 쉽게 말하면, 너무 많은 요청을 한 번에 처리하지 않도록 제어하는 것이다.

스로틀링이라는 말은 자동차 엔진의 스로틀에서 유래되었는데, 자동차는 스로틀을 이용해 속도를 제한할 수 있는 기능을 한다. 스로틀이라는 이름은 '누르다, 조르다'의 뜻을 가지고 있다. 유체 흐름을 압축, 차단 등을 통해 엔진의 힘 자체를 조절하는 기능을 한다.

IT 용어는 한 번씩 보면 일상의 전문적인 부분에서 용어를 빌려오는 경우가 많은 것 같다. 자동차 스로틀을 이용해 속도를 제한하는 행위를 스로틀링이라고 한다면, IT 쪽에서도 마찬가지의 역할을 하는 것이다.

 

예를 들어, API 서버가 초당 100개의 요청을 처리할 수 있다고 가정한다면, 서버에 연결된 클라이언트들이 초당 100개를 넘어가는 요청을 보낸다면, 일정 시간 동안 추가 요청을 차단하는 방식이 스로틀링이라고 보면 된다.

 

스로틀링이 필요한 이유

스로틀링은 왜 하는 걸까?

자동차와 동일하다. 자동차도 스로틀이 없다고 하더라도, 제 때 기어가 바뀌고, 적당한 엑셀을 주고, 속도를 스스로 제어한다면 아무런 문제가 없을 것이지만, 현실적으로 불가능하다.

따라서, 스로틀링을 통해 부하가 발생하고, 문제가 발생할 것 같으면, 흐름을 누르고 막아서, 엔진의 힘 자체를 약하게 조절하는 역할을 한다.

IT 쪽에서도 동일한 이유와 원리로 스로틀링을 사용하게 된다.

  • 서버 과부하 방지
    • API나 데이터베이스 서버는 동시에 많은 요청을 처리해야 하는데, 스로틀링 없이 무제한으로 요청을 허용한다면, 시스템이 과부하에 걸려 멈춰버리거나 성능이 저하될 가능성이 높아진다. 자동차처럼 들어오는 처리에 제한을 둠으로써 서버의 동작에 무리가 없도록 해주는 역할을 한다.

  • 서비스 품질 유지
    • 한 사용자가 너무 많은 요청을 보내면, 다른 사용자의 서비스 품질이 저하될 수 있다.
    • 스로틀링은 무조건 막고, 여는 것이 아니라, 이렇게 공정하게 리소스를 분배하는 역할도 해준다.

  • 보안 강화
    • 공격자가 대량의 요청을 보내서 시스템을 마비시키는 공격이 있다. 모르는 사람이 없을 DDoS 공격이다.
    • DDos 공격을 방어하는 데에도, 스로틀링 기술은 유용하게 사용될 수 있다. 일정 횟수를 초과한 요청을 차단하면 악의적인 트래픽을 줄일 수 있기 때문이다.

 

스로틀링 적용 방법

스로틀링을 적용하는 방법도 다양하게 존재한다.

  1. 정적 스로틀링(Static Throttling)
    • 일정한 임계치를 설정하여, 이를 초과하면 요청을 거부하는 방식
    • 구현이 간단하고 예측하기 수월하지만, 사용자의 실제 요구량 변화에 대처하기 어려움
    • 예) 1분당 최대 60개의 요청 허용
  2. 동적 스로틀링(Dynamic Throttling)
    • 부하 상태를 고려해 동적으로 제한을 조정하는 방식
    • 서버 상태에 맞춰 유연하게 제어가 가능하지만, 구현이 복잡함
    • 예) 서버의 CPU 사용량이 80% 이상일 때 요청 속도를 낮추는 방법
  3. 토큰 버킷(Token Bucket)
    • 버킷에 일정량의 토큰을 저장하고, 요청을 처리할 때마다 토큰을 소모하는 방식
    • 폭발적인 요청을 제한하면서도 유동적인 처리가 가능함
    • 설정이 잘못되면 요청이 너무 자주 차단될 수 있음.
  4. 리퀘스트 큐잉(Request Queuing)
    • 들어오는 요청을 대기열에 저장하고, 일정 속도로 처리하는 방식으로, 비동기 시스템에서 활용
    • 서버가 과부하 상태에서도 요청을 관리할 수 있지만, 순차 처리하기 때문에 응답 시간이 길어질 수 있음

스로틀링 적용 사례

스로틀링을 적용한 사례를 쉽게 찾아볼 수 있다.

클라우드 서비스가 발전한 요즘 시대에 많은 클라우드 서비스 및 API 서비스 제공업체, 대표적으로 Google API나 Twitter API 같은 SNS API, AWS 등 스로틀링을 적용해 사용자가 일정 속도 이상으로 요청을 보내지 못하도록 한다.

웹사이트 같은 경우에는 너무 많은 사용자가 한 번에 접속하면 서버가 느려질 수 있어서 이를 방지하기 위해 요청 속도를 제한하는 기능을 제공해 준다. Nginx, Apache 같은 웹 서버에는 자체적으로 요청 속도를 제한하는 기능을 제공해 주기 때문에 당장 웹서버를 구축하고, 어렵지 않게 스로틀링 기술을 적용할 수 있다.

사악해진 모바일 요금제도, 무제한 요금제가 많이 생겨나고 있다. 하지만, 전송 속도가 무척 빨라진 시대에서 살고 있어서, 너무나 많은 사용자가 무제한일 경우 엄청난 트래픽을 감당해야 할 수 있기 때문에, 일정 수준 이상의 데이터를 소모하면, 속도를 제한하는 스로틀링 기법이 사용되고 있다.

 


스로틀링은 시스템의 성능을 보호하고, 서비스 품질 유지와 보안을 강화하는 역할을 해주는 필수적인 기술이다.

 

API 서버, 네트워크 트래픽, 웹 서버, 모바일 앱, 클라우드 서비스 등 다양한 분야에서 꼭 고려해야 될 기술이기 때문에 적절한 스로틀링 전략을 세워서, 고객의 요구에도 맞추고, 시스템도 안정적이게 운영될 수 있도록 하는 것이 중요하다고 볼 수 있다.

 

 

 

반응형