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