# 429

[RateLmiter] Rate Limiter와 알고리즘
Rate Limiter 란? 애플리케이션에 과도한 요청을 제한하고 제어하는 데 사용되는 기술을 의미한다. 과도한 요청을 차단하여 다음과 같은 부분들을 개선할 수 있다. 서비스 보호 트래픽 조절 안정성 확보 효율성 향상 핵심은 주어진 시간동안 처리할 수 있는 요청의 수를 제한하는 것이다. 허용 요청 이상으로 요청이 들어오게 되면 해당 요청을 단순히 거절하거나 대기열로 보내어서 일정 시간 후에 처리할 수 있도록 하는 등 다양한 방법을 적용할 수 있다. Rate Limit 을 찾아보게 된 이유 쇼핑몰 빌더사와 연동하고 웹훅을 등록하면 고객이 회원가입, 상품 구매 등등의 다양한 행동을 취할때 거기에 대한 웹훅이 서버로 오도록 설정할 수 있다. 처음 빌더사와 연동을 하였을때는 웹훅에서 넘어오는 정보를 활용하면 충분하였다. 우리 쪽에서는 해당 웹훅을 통해서 어떤 이벤트가 발생하였는지에 대한 정보만 저장하였지만. 서비스가 커지면서 필요한 기능들을 추가하기 위해서

How to use setTimeout on mocha test?
discord bot을 만들어서 유저마다 특정 조건에 맞게 role을 정해주고 있었다. role 갱신을 할 때 기존에 부여된 role은 delete해주기 위한 코드를 작성하고 여러 개의 테스트를 실행했다. 그런데 응답으로 status 429, "message": "You are being rate limited.", "retry_after": 0.116이 왔다. discord Rate Limits는 디스코드 API가 스팸, 남용, 서비스 과부하를 방지하기 위해 존재한다. 초당 50개 제한이라는데 50개의 테스트가 없음에도 429 응답이 왔다. 그래서 좋지 않은 방법이지만 테스트 속도를 늦춰서 우회하려고 했다. arrow function