로컬 캐시와 분산 캐시

urur-27·2025년 7월 19일

잡다한

목록 보기
11/17

로컬 캐시(Local Cache)

로컬 캐시는 애플리케이션 서버의 메모리(JVM Heap 등)
직접 데이터를 저장하는 방식

  • 대표 예시: Caffeine, Guava Cache, Standalone Ehcache

장점

  • 매우 빠름: 서버 메모리에 바로 접근하므로 속도가 가장 빠름
  • 구현/운영이 간단: 별도 인프라 없이 코드만 추가하면 사용 가능
  • 비용 부담 없음: 추가적인 비용이 발생하지 않음

단점

  • 서버별 데이터 불일치: 여러 서버를 쓰는 환경에서는 서버마다 캐시가 다름
  • 확장/일관성 문제: 서버가 늘어나면 관리가 복잡해지고, 데이터 동기화가 어려움
  • 서버 재시작 시 캐시 소실: 서버를 재시작하면 캐시가 모두 사라짐

실무에서의 사용 예시

  • 단일 서버 기반의 소규모 프로젝트
  • 반드시 일관성이 필요하지 않은 데이터(예: 자주 변하지 않는 코드 값 등)
  • 개발 환경, 임시 데이터 캐싱 등

분산 캐시(Distributed Cache)

분산 캐시는 외부 캐시 서버(네트워크 상) 에 데이터를 저장해
여러 애플리케이션 서버가 공유하는 방식

  • 대표 예시: Redis, Memcached, Hazelcast

장점

  • 데이터 일관성 보장: 여러 서버에서 캐시 데이터를 공유함
  • 확장성: 서버가 늘어나도 동일 캐시 공간 사용, 대규모 트래픽 대응 가능
  • 장애 대응: 일부 서버 장애에도 캐시가 살아있음

단점

  • 네트워크 비용/지연: 로컬 캐시보단 느림(그래도 DB보단 빠름)
  • 운영 복잡성: Redis 등 별도의 인프라를 관리해야 함
  • 비용 발생: 인프라, 네트워크 비용 추가

실무에서의 사용 예시

  • 여러 서버에서 데이터 일관성이 중요한 경우(예: 로그인 세션, 인증 토큰, 실시간 데이터)
  • 대규모 트래픽, 수평 확장 환경(클라우드/마이크로서비스)
  • 캐시 유실 시 서비스에 영향이 큰 경우

정리: 실무에서의 선택 기준

상황로컬 캐시분산 캐시
속도, 비용이 최우선
데이터 일관성이 반드시 필요
서버가 1대뿐
서버가 여러 대, 확장 구조
운영, 인프라 관리 부담 최소화

실제로는 로컬 캐시와 분산 캐시를 함께 사용하는 경우도 많음
(예: 자주 조회되는 데이터는 로컬 캐시에,
공유가 필요한 데이터는 분산 캐시에 저장)


요약

  • 작은 프로젝트/단일 서버 → 로컬 캐시
  • 여러 서버, 대규모 서비스/일관성 필요 → 분산 캐시
  • 상황에 따라 두 가지 캐시를 적절히 조합하면 성능과 안정성을 모두 챙길 수 있습니다.
profile
끄아악

0개의 댓글