## 🚀 기능 설명 - 토큰 관리 방법인 Refresh Token 저장(토큰 재발급), Access Token 블랙리스트 조회(로그아웃)를 MySQL 대신 Redis를 활용하여 처리하도록 개선합니다. ## 🌟 구현 상세 내용 - 현재는 Access Token 블랙리스트와 Refresh Token을 모두 MySQL에 저장하고 있으며, 이로 인해 인증 요청마다 DB 조회/갱신 쿼리가 발생하고 있습니다. - 이를 Redis로 전환함으로써 아래와 같은 방식으로 개선합니다. ### Redis 적용 - **Access Token 블랙리스트 처리** - Redis key: `blacklist:{accessTokenHash}` (SHA-256 해시 후 key로 사용) - Redis value: Refresh Token 문자열 - TTL: 해당 Access Token의 남은 TTL 만큼 - 불필요한 필드는 버리고, Redis의 TTL 기능 활용 - 토큰 만료 시간만큼 TTL 설정 하여 만료 시 자동 삭제 - **Refresh Token 저장 및 검증** - Redis key: `refresh:{userId}` - Redis value: 의미 없는 값 (예: "1") - TTL: 해당 Refresh Token 만료 시각까지 설정 - Rotation 적용: 토큰 재발급 시, 새로운 Refresh Token으로 교체하고 TTL 재설정 ## 🎯 기대 효과 - **조회 성능 향상**: Redis는 In-memory 구조로 MySQL 대비 빠른 키-값 조회 가능, 인증 필터 병목 해소 - **토큰 자동 만료 처리**: `EXPIRE`로 TTL 관리가 가능해 별도 만료 정리 작업이 필요 없음 - **서버 부하 감소**: 불필요한 MySQL I/O 감소로 전체 시스템 부하 개선 ## ✅ To Do - [ ] Refresh Token 저장 로직 Redis 기반으로 리팩터링 - [ ] Access Token 블랙리스트 등록/조회 로직 Redis로 리팩터링 - [ ] 테스트 및 토큰 만료/재발급 시나리오 검증
🚀 기능 설명
🌟 구현 상세 내용
Redis 적용
blacklist:{accessTokenHash}(SHA-256 해시 후 key로 사용)refresh:{userId}🎯 기대 효과
EXPIRE로 TTL 관리가 가능해 별도 만료 정리 작업이 필요 없음✅ To Do