Day 31 · 3/5
🌿 중급 백엔드

스로틀링(Throttling)이란?

쉽게 이해하기

놀이공원 입구에서 한 번에 들어갈 수 있는 사람 수를 제한하는 것과 같아요. 1분에 100명까지만 입장하도록 하면 놀이기구가 고장나거나 혼잡해지는 걸 막을 수 있어요. API도 1초에 10개 요청까지만 받도록 제한해서 서버가 다운되는 걸 막아요.

핵심 정리

너무 많은 요청이 한 번에 오는 걸 제한해서 서버를 보호하는 방법

자세히 알아보기

스로틀링(Throttling)은 일정 시간 동안 처리할 수 있는 요청 수를 제한하는 기술이에요. 예를 들어 '1초에 10번만 요청 가능'처럼 상한선을 정해두는 거예요. Rate Limiting과 비슷한 개념인데, 스로틀링은 특히 '시간당 처리량'을 제어하는 데 초점을 맞춰요. 왜 필요할까요? 서버는 처리 능력에 한계가 있어요. 만약 누군가 악의적으로 1초에 10000번 요청을 보내면 서버가 모든 자원을 그 요청 처리에 쓰느라 다른 사용자는 서비스를 못 쓰게 돼요. 또 실수로 무한 루프를 만들어서 계속 API를 호출하는 버그가 있어도 스로틀링이 있으면 피해를 최소화할 수 있어요. 실무에서는 사용자별, IP별, API 키별로 스로틀링을 적용해요. 예를 들어 무료 사용자는 시간당 100번, 유료 사용자는 10000번처럼 차등을 두기도 해요. 제한을 초과하면 429 상태 코드(Too Many Requests)를 돌려주고, 몇 초 후에 다시 시도하라는 메시지를 보내요. AWS API Gateway나 Cloudflare 같은 서비스는 스로틀링 기능을 기본 제공해요. 설정에서 '초당 100 요청'처럼 지정하면 자동으로 제한해줘요. 개발자는 클라이언트 측에서 Retry 로직을 추가해서 429 응답을 받으면 잠시 기다렸다가 다시 요청하도록 만들어요.