- 캐싱 전략은 데이터 또는 연산의 결과를 임시로 저장하여 성능을 향상시키는 방법
- 캐시를 효과적으로 사용하면 시스템 성능을 크게 향상시킬 수 있다.
- 캐싱 전략을 선택할 때는 시스템의 특성과 요구 사항을 고려해야함
- 각 전략은 장단점이 있으며, 적절한 전략을 선택함으로써 최적의 성능을 달성할 수 있음
1. Write-Through Cache
- 데이터가 캐시에 쓰일 때 동시에 데이터베이스에도 저장되는 방식
- 데이터 일관성이 보장되지만, 쓰기 성능이 다소 저하될 수 있음
2. Write-Back Cache (Write-Behind Cache)
- 데이터가 먼저 캐시에 쓰이고, 나중에 데이터베이스에 저장되는 방식
- 쓰기 성능은 높아지지만, 데이터 일관성 문제나 데이터 손실 위험이 있을 수 있음
3. Read-Through Cache
- 데이터 요청이 캐시에 먼저 도달하고, 캐시에 데이터가 없을 경우 데이터베이스에서 데이터를 가져와 캐시에 저장
- 데이터 조회 성능이 향상
4. Lazy Loading
- 최초 요청 시에만 데이터를 캐시에 로드하는 방식
- 자주 사용되지 않는 데이터에 대해 불필요한 메모리 사용을 줄일 수 있음
5. Eager Loading
- 애플리케이션이 시작될 때 또는 특정 이벤트 발생 시 미리 데이터를 캐시에 로드하는 방식.
- 초기 로딩 시간이 길어질 수 있지만, 이후 요청에 대한 응답 시간이 빨라짐
6. Cache Invalidation
- 캐시된 데이터가 변경되었거나 만료되었을 때 이를 제거하거나 갱신하는 과정
- 데이터 일관성을 유지하기 위해 중요한 과정
- 주기적인 만료 시간 설정(타임투리브, TTL) 또는 데이터 변경 시 실시간 갱신 방법 등
7. Cache Eviction Policies
- 캐시 공간이 제한적이기 때문에 더 이상 저장할 수 없을 때 기존 데이터를 제거하는 정책
- 주로 사용되는 방법:
- Least Recently Used (LRU): 가장 오래 사용되지 않은 데이터를 제거
- Least Frequently Used (LFU): 가장 적게 사용된 데이터를 제거
- First-In, First-Out (FIFO): 먼저 들어온 데이터를 먼저 제거
8. Distributed Caching
- 여러 서버에 걸쳐 캐시를 분산하여 대규모 시스템에서 캐시를 효과적으로 사용할 수 있게 함
- Memcached나 Redis와 같은 분산 캐시 시스템이 사용