분산 시스템에서의 로컬 캐시 활용 전략
·2025.01.16 19:00
핵심 내용
분산 시스템에서 데이터 정합성을 고려하며 로컬 캐시와 Redis를 효율적으로 활용하는 전략을 제시한다.
자세히 보기
통신중개 플랫폼과 같이 빈번한 조회 요청이 발생하는 서비스에서는 데이터베이스 부하를 줄이기 위해 캐시 도입이 필수적이다. 고가용성을 위해 서버를 확장(Scale-out)하는 환경에서는 서버 간 데이터 불일치 문제가 발생할 수 있다.
**글로벌 캐시(Redis)**는 서버 간 데이터 공유가 가능해 정합성 유지에 유리하지만 네트워크 트래픽이 발생한다. 반면 로컬 캐시는 네트워크 지연 없이 빠른 응답 속도를 제공하며 외부 서비스 의존도를 낮출 수 있는 장점이 있다.
본 사례에서는 자주 변경되지 않는 메타 정보에 대해 **최종적 일관성(Eventual Consistency)**을 채택하고 로컬 캐시를 사용한다. 이를 위해 다음과 같은 구조를 구축했다.
- CacheManager를 통한 로컬 및 Redis 캐시의 통합 관리
- Kotlin의 sealed class를 활용한 타입 안전한 캐시 구현
- getOrPut 패턴을 이용한 효율적인 데이터 조회 및 삽입
데이터의 특성에 따라 로컬 캐시와 Redis를 목적에 맞게 구분하여 사용함으로써 시스템 성능과 효율성을 동시에 확보한다.
이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.