캐싱 전략은 읽기/쓰기 정책과 캐시 인프라 구조에 따라 달라진다. 각 전략은 상황에 맞게 선택되어야 하며, 읽기/쓰기 정책 관점, 캐시 인프라 구조 관점으로 구분할 수 있다.
1. 읽기/쓰기 정책 관점
Cache Aside
- 특징
- 주로 읽기 작업에 적합하다.
- 개발자가 직접 캐시 히트/미스 로직을 구현한다.
- 캐시 장애에 대비한 구성이 가능하다.
- 데이터 업데이트 시 정합성 문제가 발생할 수 있다.
- 동일 쿼리를 반복 수행하는 서비스에 유리하다.
Write Back
- 특징
- 쓰기 작업에 적합하다.
- Cache Store가 Data Store에 Write 부하를 줄이기 위해 Throttling Queue 역할을 수행한다.
- 캐시 장애 시 데이터 유실 위험이 있다.
- 캐시에 변경사항을 먼저 적용하므로 정합성이 확보된다.
- 조회되지 않는 데이터가 불필요하게 저장될 수 있으므로 TTL 설정이 필수적이다.
Write Through
- 특징
- 쓰기 작업에 적합하며, Cache Store에 쓰기가 발생할 때 즉시 Data Store에 저장한다.
- Write Back에 비해 구현 복잡도가 낮고 일관성을 쉽게 확보할 수 있다.
Read Through
- 특징
- 캐시 클라이언트 또는 미들웨어가 DB 조회를 자동으로 수행한다.
- 캐시 솔루션에 로직이 종속되므로 사용 빈도가 낮다.
2. 캐시 인프라 구조 관점
- 메모리 기반 캐시
- 장점
- 구성 및 구현이 간단하다.
- 빠른 응답 속도를 제공한다.
- 단점
- 확장성에 한계가 있다.
- 장애 발생 시 전체 시스템에 영향을 미칠 수 있다.
- 장점
- 분산 캐시
- 장점
- 높은 확장성과 고가용성을 보장한다.
- 부하를 여러 서버에 분산시킬 수 있다.
- 단점
- 네트워크 오버헤드가 존재한다.
- 구현 및 운영 복잡성이 증가하며, 데이터 동기화 문제가 발생할 수 있다.
- 장점
적절한 캐싱 전략 선택은 시스템의 특성과 요구사항에 따라 달라지므로, 서비스의 특성을 면밀히 분석한 후 적용해야 한다.