시스템 설계 및 아키텍처에서 사용되는 캐시 유형
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
인프라/DevOps/보안
대상자
- 소프트웨어 개발자, 시스템 아키텍처, DevOps 엔지니어
- 중급~고급 수준의 기술 지식 보유자
- 시스템 성능 최적화, 확장성 설계, 서버 부하 감소에 관심 있는 개발자
핵심 요약
- 클라이언트/서버/데이터베이스 캐시는 각각 사용자 장치, 백엔드 서버, DB 쿼리에서 정적 자원, API 응답, 복잡한 조인을 캐싱하여 성능 향상 및 서버 부하 감소에 기여
- CDN 캐시는 전 세계 사용자에 대한 정적 콘텐츠 분배를 통해 지연 시간 최소화
- 분산 캐시(Redis, Hazelcast)와 전체 페이지 캐시(Varnish, Magento FPC)는 고확장성 시스템 및 웹 플랫폼에 필수적
섹션별 세부 요약
1. 클라이언트 측 캐시
- 정적 자원(HTML, CSS, JS) 및 세션 데이터 저장
- 브라우저 캐시와 Service Worker를 통해 서버 로드 감소
- HTTP 헤더(Cache-Control, ETag) 사용 예시 포함
2. 서버 측 캐시
- API 응답, 인증 토큰, 템플릿 캐싱
- Node.js, Django의 인메모리 캐시 및 Redis/Memcached 통합 활용
3. 데이터베이스 캐시
- 복잡한 쿼리(JOIN, 집계) 결과 캐싱
- Redis, Materialized View(SQL DB), PostgreSQL/MySQL 쿼리 결과 캐시 예시 포함
4. CDN 캐시
- 정적/동적 콘텐츠(이미지, 동영상) 지역 서버(Edge Location)에 캐싱
- Cloudflare, Akamai, AWS CloudFront 활용 예시
5. 애플리케이션 레벨 캐시
- 메서드 결과, 설정, 비즈니스 로직 캐싱
- Spring Boot(annotations) 및 Python functools.lru_cache 사용 예시
6. 분산 캐시
- Redis Cluster, Hazelcast, Apache Ignite 활용
- 레플리케이션, 셰어딩 지원으로 고가용성 및 수평 확장 가능
7. 전체 페이지 캐시(FPC)
- e-커머스 플랫폼, CMS 웹사이트에서 HTML 페이지 전체 캐싱
- Magento FPC, Varnish Cache 사용 예시
8. 운영체제(OS) 캐시
- Linux Page Cache, Windows Disk Cache 활용
- 디스크 I/O 감소, 파일 시스템 접근 속도 향상
결론
- 캐시 유형 선택은 시스템 요구사항(정적/동적 콘텐츠, 확장성)에 따라 달라짐
- CDN은 전 세계 사용자 대상 정적 콘텐츠, 분산 캐시는 고부하 시스템에 적합
- 캐시 일관성, TTL 설정, 모니터링은 시스템 안정성을 위한 필수 요소