구현 소스

playground/apps/api-rate-limit at main · jiho5993/playground


1. 개요

서버에 브루트 포스 같은 공격을 막는 Rate Limit 방법은 **@nestjs/throttler**라는 패키지를 사용해 손쉽게 구현할 수 있습니다. 이는 컴퓨팅 자원의 과부하를 막고, 무차별적인 API 요청을 막는 것에 목적을 둡니다.

현재 5.1.2 버전이 적용되어 있습니다.


2. DB 설계

User와 1:N Relation 테이블인 user-rate-limit-setting이라는 테이블이 새로 생성됩니다.

스크린샷 2024-12-27 오전 11.15.56.png

각 필드에 대해 하나씩 뜯어보겠습니다.

Rate Limit은 기본적으로 초당, 분당, 시간당 제한으로 요청 가능한 횟수에 차별을 두어 유저들에게 서비스를 제공하면서, 서버 컴퓨팅 자원을 관리할 수 있어야 합니다. 타입에 따라 Row가 여러 개 생성됩니다.