2021년 08월 17일 TIL

less than 1 minute read

오늘은 지난번에 프로젝트에 세팅해두었던 Cache를 API에 적용해보았다.

캐시를 적용할 API의 선정에 많은 고민이 있었다. 잦은 변경이 없으면서도, 적용되었을 때 성능적으로 큰 이점을 받을만한 것이 무엇이 있을지 고민했다.

결론적으로는, PT 트레이너들의 리스트를 불러오는 API를 캐싱하기로 결정했다. 가장 사용자가 극적으로 느낄만한 부분이면서, 우리의 서비스 중에서 가장 변동이 적을 부분이라고 생각했기 때문이었다.

다만 문제는, Filter 별로 다르게 캐싱해야한다는 점, 그리고 Pageable때문에 조금 까다로운 점이 발생했다. JPA로 페이징을 하면서 PageImpl이 직렬화를 하는 도중 문제가 발생했는데,

에러코드를 읽어보니 기본 생성자가 없기 때문이라고 했다. 따라서 pageImpl을 상속받는 커스텀 Page 객체를 만들어 그것을 사용하는 것으로 해결했다.

Categories:

Updated: