회고록 2

하이버네이트 2차캐시 도입 후기...

1. 여태 우리는 그 흔한 redis 도 잘 안쓰고 있었고, 2차캐시 또한 안쓰고 있었다. 2. 처음엔 redis로 자주 호출하는 entity 를 캐싱처리해서 작업하려 했고 적용했다. 3. 눈으로 보기에 캐시 히트율은 높았지만 쿼리 갯수가 비약적으로 줄진 않았다. (select 쿼리 약 20% 줄음) 4. 캐싱된 entity들에 대한 호출 쿼리가 계속 있어서 확인해보니 entity graph 로 가져오는 아이들이 있었다. 5. 해당 graph get 은 ddl이란 명목하에 쓰는곳이 너무 많았기 때문에 지울 수 없었다. 6. 결국 hibernate 2차캐시 쓰기로 결정!. 7. 다만 잘 고려해야할 부분은 메모리 캐시 이기 때문에 db 가 외부에 다른 instance에서 변경되는 경우 캐시 만료 전 까지 서..

회고록 2023.04.20

spring boot major 버전 업 개발 및 배포에 대한 회고

최근에 회사에서 스프링 부트 1.5-> 2.6 으로 업데이트하는 작업을 실시하였다. 느낀점. 스프링 부트 업데이트는 서비스 전체적으로 영향을 일으키므로 스트레스 테스트가 필수이다. 부트 업데이트시 gradle 과 호환되는 버전을 찾자. gradle 변경에 따른 dependency 설정 방법의 차이가 좀 생기는데 implement 방식은 외부에서는 해당 의존성 코드는 못보게 하는 설정이다 monggodb 4.2 로 올라가면서 transactional 이 생겼는데 이를 무분별하게 사용하면 안된다. (몽고db의 경우 일반적인 find(select) 라도 해당 id를 기준으로 lock을 걸어버리기 때문에 성능문제가 생길 수 있다. lock aquire time out) 배포 후 에러가 올라온다면 로그를 유심히 ..

회고록 2023.04.12