- 연관 대화 주제 조회 API의 경우, 반복적으로 동일 데이터를 제공하며 높은 읽기 빈도 발생
- 한 번에 많은 요청 발생 시 응답 시간이 지연되고 DB 부하가 급증하는 문제 발생
- Redis를 활용한 Look Aside + Write Around 캐싱 전략 도입:
- 캐시에서 먼저 데이터를 조회 (Look Aside)
- 캐시 미스 발생 시 DB에서 데이터를 조회하고 결과를 캐시에 저장
- 데이터 갱신 시 DB만 업데이트하고 캐시는 조회 시점에 갱신(Write Around)
- 캐시 적용 결과:
- 응답 시간: 36ms에서 6ms로 83% 감소
- 캐시 최적화:
- 데이터 특성을 고려하여 캐시 만료 시간을 60분으로 설정
- 정기적인 모니터링을 통해 캐시 크기와 만료 시간 최적화 진행
- access token만 사용할 경우 이하 문제들 존재:
- token 유효 기간이 짧을 경우 만료될 때마다 사용자 재로그인 필요
- token 유효 기간이 길 경우 제3자가 token 탈취 시 긴 기간동안 사용자인 척 악의적인 요청을 할 수 있게 됨
- access token의 유효기간을 5시간으로 짧게 설정하고, 주기적으로 이를 갱신하는 데 사용할 3일 유효 기간의 refresh token을 함께 사용하도록 구성
- 하지만 refresh token이 탈취당할 경우 탈취자가 유효 기간동안 access token을 계속 발급받을 수 있는 문제 존재
- access token 갱신 시 refresh token도 재발급하는 RTR(Refresh Token Rotation) 도입, 인증/인가 보안 강화
- RTR 도입 효과:
- refresh token 탈취 시 최대 노출 시간을 5시간으로 단축
- 이전 refresh token 무효화로 탈취된 token의 재사용 방지
안민재 | 박현지 |
---|---|