본문 바로가기
Q&A2022년 6월 11일1분 읽기

API rate limiting 구현 방법

한
한동욱
조회 993댓글 1

Express.js에서 API rate limiting을 구현하려면 어떻게 하나요?

댓글 1

김김영삼4년 전

Express.js rate limiting 구현:

// 1. express-rate-limit (간단)
const rateLimit = require("express-rate-limit");

const limiter = rateLimit({
windowMs: 15 * 60 * 1000, // 15분
max: 100, // 15분에 100요청
message: { error: "요청이 너무 많습니다. 잠시 후 다시 시도하세요." },
standardHeaders: true,
});

app.use("/api/", limiter);

// 2. Redis 기반 (분산 환경)
const RedisStore = require("rate-limit-redis");
const limiter = rateLimit({
store: new RedisStore({ client: redisClient }),
windowMs: 15 * 60 * 1000,
max: 100,
});

// 3. 엔드포인트별 다른 제한
const loginLimiter = rateLimit({ windowMs: 60000, max: 5 });
app.post("/api/login", loginLimiter, loginHandler);

로그인 같은 민감한 엔드포인트는 더 엄격하게 제한하세요.

Ctrl+Enter로 등록