회사에서 local cache 를 사용할 일이 생겼습니다.
동료분이 guava 를 알려주셨고 처음 들어보았기에 일단 baeldung 을 검색해 보았는데 조금 이상했습니다.
https://www.baeldung.com/guava-cache
캐시를 사용할 때 익히 쓰던 @Cacheable 어노테이션이 보이지 않았습니다.
그래서 익숙하던 ehcache 를 검색해 보면서 비교해 봤습니다.
- guava 는 가볍습니다.
- guava 는 내부적으로 ConCurrentHashMap 을 사용하고 있습니다.
읽다 보니 동시성은 안전하지만 왠지 성능이 떨어질 것 같다는 직감이 들었습니다.
그래서 몇 개의 문서를 찾아본 결과 guava 는 읽기보다는 쓰기 작업이 중요한 상황에 쓰면 좋다는 내용을 찾았습니다.
여전히 꺼림칙한 느낌이 있어서 좀 더 찾아보었더니 guava 는 deprecated 되었습니다!
심지어 꽤 오래 전인 1.5.1.RELEASE 에서였습니다.
다시 처음으로 돌아가서 조사하던 중 caffeine 캐시를 찾았습니다.
ehcache 가 익숙하긴 하지만 기능이 많고 무거웠기에 가벼운 caffeine 을 사용하기로 최종 결정했습니다.
'Series > 실전!' 카테고리의 다른 글
RandomCode Generator 성능 측정하기 (0) | 2023.01.11 |
---|---|
[트러블 슈팅] ECS 클러스터 안의 서비스간 네트워크 연결 불가 (4) | 2022.09.24 |
Repository 가볍게 관리하기 (0) | 2022.08.01 |
레거시 코드 개선하기 with delegate pattern (0) | 2022.06.05 |
Custom LocalDateUtils 리팩토링 (0) | 2022.01.04 |