riyenas0925 / Sejong_Track_Management

:school: 세종대학교 트랙관리 프로그램
Apache License 2.0
6 stars 2 forks source link

ENH, REFT : TrackAll 리펙토링, 스프링 부트 캐시 적용, TrackCourse의 N+1 문제 해결 #251

Closed riyenas0925 closed 4 years ago

riyenas0925 commented 4 years ago

@kimhanui @2kyung19

Spring Boot Cache 사용

TrackAll 같은 경우에는 같은 데이터를 여러명이 반복해서 조회하기 때문에 매번 데이터베이스에서 꺼내 계산하는 것 보다 스프링 부트 캐시를 사용해서 한번 꺼내서 계산하고 TrackCourse가 변경되기 전까지는 이미 계산된 값을 캐시에서 꺼내서 사용하는 방식으로 변경 했음

Test

-> 1차 조회 -> 144ms -> 2차 조회 -> 50ms -> 3차 조회 -> 51ms

처음 조회 할때만 계산때문에 오래걸리고 그뒤로는 캐시에 저장된 값을 꺼내기 때문에 시간이 단축됨

N+1 문제

TrackCourse에서 N+1 문제가 발생하길래 QueryDsl에서 fetchjoin을 사용해서 해결