스프링 캐시 테스트
스프링 캐시
대시보드 기능에 스프링 캐시를 적용했고 캐시의 유무에 따라 유의미한 성능의 차이가 있는지 보기 위해 테스트를 해보기로 했다. 캐시를 사용하는 메서드와 사용하지 않는 메서드 두 가지를 만들고, 현재는 테스트 데이터가 크기가 작기 때문에 작업에 큰 시간이 들지 않아 nano초로 측정했다.
측정은 controller에서 시간을 측정하여 header에 추가해 보낸 것을 swagger로 확인하여 진행했다.
결과
캐시가 없는 메서드의 경우 해당 작업을 반복할수록 DB Buffer pool 등의 내부 캐싱이 적용되기 때문인지 실행 시간이 줄어드는 경향은 보였으나 평균 100만 ns를 유지하는 모습을 보였다.
그에 반해 Spring cache를 달아준 메서드는 첫 실행 때에는 캐시 저장때문인지 캐시가 없는 메서드에 비해 3배의 실행시간이 걸렸으나, 이후부턴 평균 30만 ns의 안정적인 실행시간을 보였다. 현재의 환경에서는 테스트 데이터가 작기 때문에 작업 단위가 작고, 같은 작업을 반복한 것을 생각하면 실제 서비스에서의 성능 차이는 상당히 유의미할 것으로 보인다.