다섯 살도 알 수 있게 · SRE
속도 제한이 뭐예요?
속도 제한을 한 사람당 1분에 몇 번까지만 받아주는 창구 이야기로 풀어봤어요.
한 손님이 쉬지 않고 요청을 보내, 다른 손님이 못 들어와요.사람이든 봇이든, 혼자 창구를 다 차지할 수 있어요.
막는 규칙이 없으면 한 명이 창구 전체를 독차지할 수 있어요.규칙이 있어야 공평하게 나눠 써요.
창구마다 '한 사람당 1분에 몇 번까지'를 정해서, 넘으면 잠깐 기다리게 해요.한도를 정하면, 한 사람이 전부를 차지하지 못해요.
누구에게 매길지 정해요사람별 또는 전체로요
넘으면 거절하거나 늦춰요잠깐 기다리게 해요
급할 땐 살짝 여유를 둬요버킷에 남은 만큼요
한도는 숫자로 보여줘요남은 횟수를 알려줘요
이게 토큰 버킷이에요 — 요청마다 코인 하나씩 꺼내요.코인이 떨어지면 다시 채워질 때까지 잠깐 기다려요.
둘은 달라요.속도 제한은 누가 나쁜지 가리지 않고, 다 같이 적당히만 쓰게 해요.
한 줄로
속도 제한 = 한 사람(또는 전체)이 일정 시간에 몇 번까지만 쓰게 해서, 창구를 다 같이 쓸 수 있게 하는 일.
Rate limiting. 사용자별·API별로 호출 횟수에 상한을 두는 기법이에요. 토큰 버킷이나 슬라이딩 윈도 같은 알고리즘으로 구현하고, 넘으면 보통 429 응답을 돌려줘요. DDoS 방어나 WAF와는 목적이 달라요 — 그쪽은 공격자를 가려내고, 속도 제한은 우리 시스템 자신을 보호해요.
어른들은 이렇게 불러요
- 속도 제한
Rate limiting - 얼마나 자주 쓸 수 있는지 정해두는 규칙. 창구마다, 사람마다 정할 수 있어요.
- 토큰 버킷
Token bucket - 코인이 든 양동이. 요청마다 코인 하나씩 쓰고, 천천히 다시 채워져요.
- 슬라이딩 윈도
Sliding window - 최근 일정 시간 동안만 세는 방법. 이름만 알아둬도 충분해요 — 토큰 버킷과 비슷한 또 다른 방식이에요.
- 사용자별/전체 한도
Per-user / Global limit - 누구에게 규칙을 매길지. 한 사람씩 잴 수도, 창구 전체로 잴 수도 있어요.
- 429 응답
429 response - '너무 많아요'라는 대답. 이름만 알아둬도 충분해요 — 한도를 넘었을 때 돌아오는 신호예요.
- API 게이트웨이
API gateway - 여러 창구를 한데 모은 정문 안내소. 속도 제한은 주로 여기서 걸려요.
- DDoS 방어와의 차이
Difference from DDoS defense - 속도 제한은 공격자를 가리지 않아요. DDoS 방어·WAF는 나쁜 손님을 가려 막고, 속도 제한은 우리 시스템 자신을 보호해요.
- 할당량
Quota - 더 긴 기간(하루·한 달) 동안의 한도. 1분당 한도보다 긴 호흡으로 정해요.
다음 이야기
안전바 딸깍 확인 →