Cache

캐시는 DB 중복 컬럼을 넣기 전의 읽기 완충층이다

DB에 중복 컬럼을 만들기 전 애플리케이션 캐시, CDN, 읽기 복제본으로 같은 읽기 병목을 해결할 수 있는지 본다.

Hit 경로

request: product:42 cache hit: DB 접근 없이 응답 TTL 안이면 같은 값 재사용

Miss/Invalidation 경로

cache miss: DB 조회 cache set: 결과 저장 상품 변경: key 삭제 또는 새 버전 발급
관점
캐시가 맞는 경우
주의할 책임
읽기
동일 조건 조회가 반복된다.
키 설계와 TTL을 정한다.
쓰기
데이터가 자주 바뀌지 않는다.
변경 이벤트에서 무효화한다.
정합성
잠깐의 오래된 값이 허용된다.
강한 정합성 화면은 DB를 직접 본다.

기준: 캐시로 해결되는 읽기 병목은 테이블 구조를 흐리지 않는다. 캐시도 무효화 책임이 없으면 반정규화와 같은 정합성 문제를 만든다.