안정적인 서비스를 개발하기 위해 필요한 레이트리미팅을 적용해보았다. 레이트리미팅을 적용하지 않을 경우, 다음과 같은 문제가 발생할 수 있다.
Node.js의 경우에는 express-rate-limit
모듈을 통해 레이트리미팅을 적용할 수 있다.
npm install express-rate-limit 명령어를 통해 모듈을 설치한다.
config에 limiter.js라는 이름으로 미들웨어를 생성하고 다음과 같이 코드를 작성한다.
route에서 수천번 눌러 문제를 일으킬 수 있는 post 요청에 미들웨어를 적용한다.
1분에 5번 이상의 요청이 들어오면 다음과 같이 에러메세지와 함께 api 수행을 하지 않는다.