local cache 설계와 알게된 내용
local cache 설계와 알게된 내용
내용
동기
- 회사 상품 목록 api 중 상당히 느린 코드가 있었다.
- 해당 코드는 코드 구조가 상당히 복잡하여, 속도 개선을 위해서 아래와 같은 선택지가 있었다.
- 해당 상품목록 api를 사용하는 프론트 코드에서 반드시 사용하는 response만 확인하여, 성능이 개선된 v3 api 개발.
- 반복적으로 호출하는 상품, 아이템에 캐싱을 적용
- 그 중 2번이 궁금해서 2번에 대한 부분을 찾아보고, 테스트 해보았다.
과정
- spring boot actuator를 쓰면 jvm 사용량을 그 순간에 구체적인 수치로 알수있다.
- heapdump로 메모리 도 덤프할 수 있다.
- intellij profiler, actuator의 결합이면 bean도 어떤것을 사용하는지 쉽게 알 수 있다.
- 아래는 캐시의 성능 확인에 도움이 되었던 path 들이다.
1 2 3
http://localhost:1650/actuator/metrics/jvm.memory.used?tag=area:heap http://localhost:1650/actuator/metrics http://localhost:1650/actuator/caches
결론.
- 코드의 복잡성이 가장 큰 이슈고, 캐시도입은 장기적인 관점에서의 문제 해결은 아니라고 판단함.
- api 구조 개선하여 v3로 만드는 방법으로 추후 개선하기로 함.
참고 자료
https://mangkyu.tistory.com/342
https://www.jetbrains.com/ko-kr/pages/intellij-idea-profiler/
https://youseong.tistory.com/68
참고 캡쳐본.
This post is licensed under CC BY 4.0 by the author.


