1. 캐싱이란?
캐싱(Cache) : 데이터나 결과를 빠르게 다시 제공하기 위해 미리 저장해두는 저장소
DB, 파일 시스템, API 응답 등 느린 리소스 접근을 줄이고 성능 최적화, 응답 속도 개선에 사용
메모리 기반(In-memory), Redis, Memcached 등 다양한 형태 존재
예 : 자주 조회되는 콘서트 목록 데이터를 매번 DB에서 읽지 않고 캐시에 저장 → 빠른 응답 가능
2. 캐싱 전략
전략
설명
Cache-Aside
첫 요청 시 DB 조회 → 캐시 저장 → 이후 캐시 조회 → 캐시 미스 시 DB 재조회
Read-Through
캐시 miss 시 자동으로 DB 조회 및 캐시 갱신
Write-Through
DB 저장 시 캐시에도 동시에 저장
Write-Behind
캐시에 먼저 저장 후 비동기적으로 DB에 반영
2.1 Cache-Aside
장점
구현 간단
필요한 데이터만 캐시
단점
첫 요청은 느림
동시 요청 시 Cache Stampede 가능성
2.2 Read-Through
장점
애플리케이션이 캐시 접근만으로 데이터 제공 가능
캐시 miss 시 자동으로 DB → 캐시 저장 처리
캐시와 DB 일관성 관리 쉬움
단점
DB 쿼리 비용은 여전히 존재 (캐시 miss 시)
캐시 레이어에 복잡한 로직 포함될 수 있음
캐시 업데이트 latency 존재
2.3 Write-Through
장점
DB와 캐시 항상 동기화
데이터 정합성 확보
캐시 일관성 유지 용이
단점
쓰기 성능 저하 (DB 저장 + 캐시 저장 동시 수행)
write 지연 가능성
트래픽이 적은 데이터도 캐시에 남을 수 있음
2.4 Write-Behind
장점
쓰기 처리 속도 빠름 (캐시에만 우선 저장 → 비동기 DB 반영)
쓰기 부하 분산 효과
DB 부하 완화