Skip to content

[IMPROVE] JWT 필터에 캐싱 도입 #285

@Dimo-2562

Description

@Dimo-2562

✨ 개선할 기능

JWT 인증 필터에서 매 요청마다 발생하는 DB 조회를 Redis 캐싱으로 대체

🏷️ 도메인 (해당하는 것에 체크)

  • 📝 domain:post (게시글)
  • 👤 domain:user (사용자)
  • 🏢 domain:source (테크블로그 출처)
  • 🔍 domain:search (검색)
  • 🔔 domain:notification (알림)
  • 📊 domain:recommendation (추천)
  • 🎯 domain:activity (사용자 활동)
  • 🔐 domain:auth (인증/보안)
  • 🌐 infra (인프라/배포)

📌 현재 상태 (AS-IS)

JwtAuthenticationFilter에서 액세스 토큰이 유효한 경우에도 매 요청마다
UserRepository.findById()를 호출하여 불필요한 DB 쿼리가 발생함

🎯 개선 방향 (TO-BE)

Cache-Aside 패턴으로 Redis에 유저 인증 정보(id, role, status, email)를 캐싱

  • 캐시 히트 시 DB 조회 없이 인증 처리
  • 캐시 미스 시 DB 조회 후 캐시 저장
  • TTL은 액세스 토큰 만료시간과 동일하게 설정
  • 탈퇴/온보딩 완료 시 캐시 무효화, 토큰 갱신 시 캐시 갱신

💡 개선 이유

인증이 필요한 모든 API 요청마다 DB 쿼리가 발생하는 것은 불필요한 부하이며,
유저 인증 정보는 자주 변경되지 않으므로 캐싱에 적합함

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions