모든 데이터를 도서관(DB)에서 찾아오기엔 너무 머니까, 자주 보는 책은 내 책상(Cache)에 미리 꺼내두는 것. 책상이 꽉 차면? 안 보는 책부터 치워야 함
데이터베이스(DB)
캐시(Cache)
결론
DB = 신뢰성 중심,
캐시 = 효율성 중심
단순히 "빠르다"를 넘어, 돈과 생존의 문제.
| 구분 | 설명 | 예시 |
|---|---|---|
| 로컬 캐시(Local Cache) | 애플리케이션 내부 메모리에 저장 | ConcurrentHashMap, Caffeine |
| 분산 캐시(Distributed Cache) | 외부 서버에 저장해 여러 인스턴스가 공유 | Redis, Memcached |
| 전략 | 설명 | 특징 |
|---|---|---|
| Write-through | DB에 쓰는 동시에 캐시도 갱신 | 데이터 일관성 ↑ |
| Write-back | 캐시에 먼저 쓰고, 나중에 DB 반영 | 속도 ↑, 위험도 ↑ |
| Cache-aside (Lazy Loading) | 요청 시 캐시 확인 → 없으면 DB 조회 후 캐시 저장 | 가장 일반적 |
| Cache Invalidation | 데이터 변경 시 캐시 삭제 또는 갱신 | 일관성 유지 핵심 |
요청 → 캐시 확인
↓
[없음] → DB 조회
↓
데이터 캐시에 저장 (TTL 설정)
↓
응답 반환
캐시의 가장 큰 기술적 과제는 "정확성 유지"
TTL(유효 기간) -> 강제로 일정 주기로 캐시의 데이터 최신화
set key value EX 300 -> 300초 유지Eviction Policy (삭제 정책)