woowacourse-teams/2020-14f-guys

캐싱 기능을 적용한다.

Opened this issue · 0 comments

image
캐싱을 적용한 기준은 다음과 같습니다.

  1. 캐시를 적용했을 때, 히트율이 낮으면 오히려 성능이 떨어집니다. 히트율은 변경되지 않은 캐싱된 값을 가져오는 비율이라고 표현할 수 있겠네요. 자주 변경되는 데이터일 경우, 캐시가 자주 evict되기 때문에 히트율이 현저하게 떨어집니다. 따라서, api 사용 로그를 확인해서 가장 많이 사용된 api 위주로 캐싱을 적용했습니다.
  2. 자주 사용되더라도, 여러 도메인에 걸쳐있는 api가 있습니다. 예를 들면 member의 id로 모든 Race들을 불러오는 api는 언뜻 보기에는 캐싱이 효율적이라고 생각할 수 있습니다. 하지만 memberId - Riders - Races 순으로 불러오기 때문에 멤버가 속해있는 어떠한 레이스라도 Rider가 추가된다면 해당 캐시는 지워져야합니다. 이 비용이 너무 크기 때문에 이런 api에는 캐시를 적용하는 것이 비효율적이라고 판단했습니다.

위 기준으로 Get Member, Get Calculation 2개에 캐싱을 적용했습니다.