본문으로 이동
캐시 문제 해결 가이드 - DB 과부하 방지 실전 팁
문서

캐시 문제 해결 가이드 - DB 과부하 방지 실전 팁

김신 토스 · 토스 기술 블로그

원문 보기

AI 핵심 요약

캐시를 사용해도 만료 시점의 동시 미스, 존재하지 않는 데이터의 반복 조회, 캐시 장애, 핫키 만료가 데이터베이스 과부하와 서비스 장애를 일으킬 수 있습니다. 글은 일괄 만료에 지터를 더하고, ‘값이 없음’을 널 오브젝트 패턴으로 캐싱하며, 캐시 장애 때 핵심 기능만 유지하도록 대체 작동을 설계하는 방법을 제안합니다. 핫키 만료로 인한 중복 조회에는 분산 락을 활용해 한 번의 갱신만 허용할 수 있습니다. 각 대책은 최신성, 캐시 공간, 기능 중요도와 데이터베이스 용량을 함께 고려해 서비스 환경에 맞게 적용해야 합니다.

  • 동시에 만료되는 캐시에는 무작위 지터를 더해 데이터베이스 요청을 시간에 걸쳐 분산하세요.
  • 데이터가 없다는 결과도 널 오브젝트나 약속된 센티널 값으로 캐싱하면 반복 조회를 줄일 수 있습니다.
  • 캐시 장애 시 모든 요청을 데이터베이스로 넘기지 말고, 핵심 기능과 중단 가능한 부가 기능을 구분하세요.
  • 핫키 캐시 미스에는 분산 락을 적용해 여러 서버가 같은 데이터를 중복 조회·갱신하지 않도록 하세요.

소개

대용량 트래픽 환경에서 캐시를 사용할 때 주의해야할 위험 상황과 예방법을 소개합니다.

비슷한 학습 자료

문서 이세찬

토스페이먼츠 데이터 엔지니어링 팀이 50억 건의 데이터를 1초 이내로 조회하는 시스템을 구축한 이야기를 들려드려요.

백엔드 데이터베이스

문서 김경윤

TPS가 평균 1만, 최대 2만까지 늘어난 약관(terms) 서버에 안정적인 서비스 제공을 위해 캐시를 적용한 이야기를 들려드리려고 해요.

백엔드 데이터베이스

문서 강병수

이번 글에서 토스증권 실시간 데이터 프로세싱에 활용 중인 ksqlDB에 대해서 소개하려고 합니다.

백엔드 데이터베이스

문서 김광훈

토스증권 해외주식 플랫폼 팀은 미국 주식을 중심으로 해외 주식 원장을 개발 및 운영하고 있어요. 현지에서 주식 매매를 대신 해주는 브로커와 어떤 통신 문제가 있었고, 문제를 어떻게 해결했는지 공유드립니다.

백엔드 네트워크

문서 함종현

늘어나는 트래픽을 잘 처리하기 위해 서버 개발자는 어떤 고민을 해야 할까요? “라이브 쇼핑 보기” 서비스에 대규모 트래픽이 들어오면서 겪은 문제와 해결책을 공유드려요.

백엔드 데이터베이스

문서 박서진

웹 성능을 위해 꼭 필요한 캐시, 제대로 설정하기 쉽지 않습니다. 토스 프론트엔드 챕터에서 올바르게 캐시를 설정하기 위한 노하우를 공유합니다.

웹 개발 프론트엔드