로컬 캐시 VS 분산 캐시

양성준·2025년 7월 20일

스프링

목록 보기
49/49

로컬 캐시(Local Cache)

  • 애플리케이션 서버 혹은 인스턴스 각각의 내부(메모리, 디스크)에 데이터를 저장하는 방식.
  • 각 서버가 자신만의 캐시를 관리하며, 비용 없이 글로벌 캐시에 비해 빠른 접근이 가능하다.
  • 네트워크 통신이 필요 없이 처리되므로 응답 속도가 매우 빠름.
  • 추가 인프라 비용이 없고, 구현이 간단하다.
  • 단, 서버가 여러 대일 경우 서버 간 캐시 데이터가 서로 다를 수 있다. (불일치 문제)
  • 서버 재시작/장애 시 캐시 데이터가 손실된다. (휘발성)

분산 캐시(Distributed Cache)

  • 여러 서버가 네트워크를 통해 하나의 공유 캐시(예: Redis, Memcached)에 접근해 데이터를 저장하고 조회하는 방식.
  • 서버 수가 많아져도 모든 인스턴스가 동일한 데이터를 공유하기 때문에 데이터 일관성을 유지할 수 있으며, 시스템 확장성이 뛰어남.
  • 서버를 재시작 해도 캐시 데이터 유지가 가능하다.
  • 네트워크를 통한 접근이 필요해 일부 오버헤드가 발생할 수 있다. (네트워크 I/O 발생 -> 로컬 캐시보다 느림)
  • 외부 의존성으로, 캐시 서버가 죽으면 전체 서비스에 영향을 줄 수 있다.
  • 인프라 구축 비용 및 운영 복잡도 상승

실무에서의 선택 기준

데이터 일관성

  • 중요하다면: 분산 캐시 (여러 서버에서 데이터를 공유해야 하는 서비스)
  • 중요하지 않다/단일 서버 환경: 로컬 캐시 사용

속도

  • 즉시성, 초고속 응답 필요: 로컬 캐시 유리

시스템 구조

  • 대규모, 확장성 고려: 분산 캐시 필수
  • 소규모, 단일 서비스: 로컬 캐시가 관리 비용 면에서 효율적

데이터 성격

  • 변경이 적고, 자주 조회되는 단순 데이터: 로컬 캐시 적합
  • 잦은 변경, 여러 인스턴스에서 동시에 접근: 분산 캐시 적합

비용과 복잡성

  • 비용 및 관리 복잡성 최소화 필요: 로컬 캐시(추가 인프라 불필요)
  • 비용/관리보다 확장성과 일관성이 우선: 분산 캐시

혼합 전략

  • 실제로는 로컬+분산 캐시를 동시에 사용해 브이(N)캐시(Locally Cache, Miss 시 분산 캐시 조회)처럼 하이브리드로 운영하기도 함!
  • 로컬 캐시는 쉬운 구축, 빠른 속도에 강점을 두고 있으나, 데이터 일관성이 필요한 환경에선 부적합
  • 분산 캐시는 확장성 및 데이터 일관성 유지에 적합하지만, 네트워크 I/O로 로컬 캐시보다 느리고, 추가 인프라 및 관리 비용이 듦.

변경이 잘 안일어나는데 조회는 자주 일어나는 데이터 (카디널리티가 낮은 애들 ex. 상품 카테고리)
-> 변경이 잘 안일어나므로 로컬 캐시에 저장해두면 매우 빠르게 조회 가능 (네트워크 I/O가 없기 때문)
이런 경우, 변경이 발생한다면 MQ를 통해 분산 서버에서 로컬 캐시들을 업데이트해서 정합성을 맞춰줄 수 있음

변경이 잘 안일어나니까 로컬 캐시에 저장해두는게 조회할 때도 네트워크 I/O가 없어서 훨씬 이득이고,
변화가 잘 일어나지 않기 때문에 갱신 비용이 적어서 글로벌 캐시에 저장하는 것보다 
MQ를 사용해서 로컬 캐시를 갱신해주는게 더 이득인 것.

로컬 캐시 이득 - MQ 사용 갱신 비용이 글로벌 캐시를 사용할 때 보다 더 이득인 것. 
profile
백엔드 개발자

0개의 댓글