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

황승환·2022년 9월 3일
0

Server

목록 보기
23/23
post-thumbnail

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 전공 학부생의 개발 일기

0개의 댓글