Skip to content

Issue #2 빠른 조회를 위한 레디스 캐싱

DongJun Kim edited this page Feb 21, 2024 · 2 revisions

문제 상황

image
  • 여정 페이지에서 화면에 보여줄 데이터를 BE로부터 받아오는데 외부 API 호출로 인한 응답 지연이 발생했습니다.
  • 여정 페이지에 사용자가 접속할 때마다 외부 API 호출이 발생하여서 불필요한 부하가 BE 서버에 가해지는 상황이었습니다.
    • 경로 정보는 외부 API 호출을 통해 받아오는 값이기에 데이터베이스에 저장하지 않았습니다.
    • 그러다보니 여정 페이지에 접속할 때마다 외부 API 호출이 발생했고, 이는 곧 불필요한 서버 리소스 사용으로 이어지는 상횡이었습니다.

해결 방법

image
  • 여정 페이지에 보여줄 데이터를 캐싱하는 레디스 케쉬를 구현했습니다.
  • 찾으려는 데이터가 레디스에 있으면 레디스에서 읽은 값을 리턴하고, 존재하지 않는다면 데이터베이스와 외부 API를 이용해 데이터를 찾은 후에 레디스에 저장하도록 구현했습니다.

결과

image
  • 레디스 캐쉬 도입 후에 평균적으로 1~1.5초 정도 소요되던 응답 시간을 10~99 ms 정도로 단축 시킬 수 있었습니다.