Modifying (1) 썸네일형 리스트형 JPA 더티 체킹의 함정: 동시성과 정합성 문제 해결기 조회 성능을 끌어올리겠다고 야심 차게 집계 컬럼을 추가했다가, 며칠 뒤 "팔로워 수가 왜 안 맞지?"라며 머리를 싸매본 적 있으신가요? 저는 있습니다. 오늘은 JPA의 더티 체킹(변경 감지)을 쓰다가 만나게 되는 동시성과 정합성 문제, 그리고 이걸 어떻게 풀어나갈 수 있는지를 차근차근 정리해보려고 합니다.문제의 발단: 조회 성능을 위해 추가한 집계 컬럼읽기 성능을 개선하려다 보면 흔히 만나는 갈림길이 있습니다. 매번 COUNT 쿼리로 통계를 계산할 것이냐, 아니면 반정규화를 해서 집계 값을 컬럼으로 박아둘 것이냐. 캐시 계층이나 조회 전용 NoSQL을 따로 둘 여력이 없다면, 후자가 꽤 매력적입니다. 예를 들어 제품 테이블에는 리뷰 개수, 리뷰 총점, 평균 리뷰 점수를, 회원 테이블에는 팔로워 수를 컬럼.. 이전 1 다음