PM으로 성장하기/개발 공부
캐싱(Caching)
고양이 고씨
2025. 2. 6. 09:46
캐싱
자주 사용하는 데이터나 계산 결과를 미리 저장해 두고, 필요할 때 빠르게 가져오는 기술
성능을 향상시키고 시스템의 부하를 줄일 수 있음
캐싱의 종류
위치 | 구분 | 예시 |
Server Side, 서버 측 캐싱 | 데이터베이스 쿼리 결과 캐시 | MySQL Query Cache, Redis |
웹 서버 캐시 | Nginx, Varnish | |
API 응답 캐시 | ||
CDN, 네트워크 캐싱 | CDN 캐시 | Cloudflare, Akamai |
프록시 서버 캐시 | ||
Client Side, 클라이언트 캐싱 | 브라우저 캐시 | HTML, CSS, JS, 이미지 등 |
DNS 캐시 | 도메인-IP 매핑 저장 | |
애플리케이션 캐시 | 모바일 앱에서 데이터 저장 |
* Server Side
서버 메모리에 자주 액세스하는 데이터를 저장하여 성능을 향상
* CDN
웹사이트의 고가용성 및 성능 향상을 제공하기 위해, 클라이언트 요청에 대해 가까운 엔드포인트를 통해 컨텐츠를 빠르게 전달
* Client Side
서버로드를 줄이고 성능을 향상시키기 위해 사용자의 장치에 데이터를 저장
캐싱 전략
1. 캐시 무효화(Cache Invalidation)
데이터를 최신 상태로 유지
2. 캐시 제거 정책(Cache Eviction)
가장 오래 사용되지 않은 데이터를 삭제(LRU)하거나, 가장 사용빈도가 낮은 데이터를 삭제(LFU)하거나 먼저 들어온 데이터를 삭제(FIFO)
3. Lazy loading, Eager loading
Lazy loading은 요청이 있을 때 캐시를 저장하고, Eager loading은 미리 데이터를 캐시에 적재하는 것
출처
- ChatGPT 4o
- roadmap.sh/backend