[ Server ] Node.js 레이트리미팅(Rate Limiting) 적용

황승환·2022년 9월 3일
0

Server

목록 보기
23/23
post-thumbnail
post-custom-banner

Node.js 레이트리미팅(Rate Limiting) 적용

안정적인 서비스를 개발하기 위해 필요한 레이트리미팅을 적용해보았다. 레이트리미팅을 적용하지 않을 경우, 다음과 같은 문제가 발생할 수 있다.

  • 사용자가 api 요청을 너무 많이 보낼 경우 서버가 마비될 수 있음
  • DOS공격을 막을 수 없음

Node.js의 경우에는 express-rate-limit 모듈을 통해 레이트리미팅을 적용할 수 있다.

1. express-rate-limit 모듈 설치

npm install express-rate-limit 명령어를 통해 모듈을 설치한다.

2. 미들웨어 생성

config에 limiter.js라는 이름으로 미들웨어를 생성하고 다음과 같이 코드를 작성한다.

3. API에 limiter 미들웨어 적용

route에서 수천번 눌러 문제를 일으킬 수 있는 post 요청에 미들웨어를 적용한다.

4. 적용 여부 확인

1분에 5번 이상의 요청이 들어오면 다음과 같이 에러메세지와 함께 api 수행을 하지 않는다.

profile
꾸준함을 꿈꾸는 SW 전공 학부생의 개발 일기
post-custom-banner

0개의 댓글