시스템 설계 및 아키텍처에서 사용되는 캐시 유형

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

인프라/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 설정, 모니터링시스템 안정성을 위한 필수 요소