OPEN HYPER STEP
← 목록으로 (Redis)
REDIS · 23 / 34
redis
CHAPTER 23 / 34
읽기 약 2
FUNCTION

Rate Limiting 구현


핵심 개념

Redis로 API 요청 횟수를 제한합니다. 슬라이딩 윈도우와 토큰 버킷 패턴을 구현합니다.

코드 분석
REDIS📋 코드 (19줄)
// 고정 윈도우 방식
async function rateLimit(ip: string) {
  const key = `rl:${ip}:${Math.floor(Date.now()/60000)}`
  const count = await redis.incr(key)

  if (count === 1) {
    await redis.expire(key, 60)
  }

  if (count > 100) {
    throw new Error('Rate limit exceeded')
  }
}

// Express 미들웨어
app.use(async (req, res, next) => {
  try { await rateLimit(req.ip); next() }
  catch { res.status(429).json({ error: 'Too many requests' }) }
})

AI 프롬프트
🤖 AI에게 잘 물어보는 법 — 모델·전략별 프롬프트
Claude

무료: Sonnet 4.6 / Pro $20/mo: Opus 4.6

이 Redis 'Rate Limiting' 사용 패턴에서
데이터 유실 위험·TTL 누락·메모리 누수를
분석해서 프로덕션 수준으로 개선해줘.
ChatGPT

무료: GPT-5.5 / Plus $20/mo: GPT-5.5 Pro

'Rate Limiting'를 캐싱·세션·큐 3가지 시나리오에 적용하는
실전 코드를 만들어줘.
Gemini

무료: 2.5 Flash / Pro $19.99/mo: 3.1 Pro

이 Redis 'Rate Limiting' 사용 패턴이
클러스터의 키 분포·메모리 사용량·레이턴시에 미치는 영향을
분석하고 최적화 방안을 알려줘.
Grok

무료: Grok 4.1 / SuperGrok $30/mo

Redis 'Rate Limiting' vs Memcached·Valkey·DragonflyDB의
동일 기능 구현을 2026년 기준으로
솔직히 비교해줘.

⭐ 이것만 기억하세요
Rate Limiting 구현 이 3가지만 확실히 잡으세요
1.메모리 기반 Rate Limit은 서버가 여러 대일 때 각각 독립적으로 카운트돼서 제한이 무력화됩니다
2.Redis INCR + EXPIRE 조합으로 분산 환경에서도 일관된 Rate Limiting을 구현합니다
3.다음 챕터에서 실시간 순위표를 구현합니다


공유하기
진행도 23 / 34