피드로 돌아가기
Dev.toInfrastructure
원문 읽기
불필요한 중복 연산 제거를 통한 시스템 처리량 극대화 전략
Caching in System Design - The Secret to High Performance
AI 요약
Context
수평적 확장과 Load Balancer 도입만으로 해결 불가능한 데이터베이스 부하 및 응답 지연 문제 발생. 동일한 쿼리와 연산이 반복되는 Redundancy 구조로 인해 시스템 자원 낭비와 성능 병목 현상이 심화된 상황.
Technical Solution
- Computation 중심에서 Reuse 중심으로 사고를 전환하여 동일 요청에 대한 결과값을 저장하는 Caching 계층 설계
- 시스템 규모에 따라 Application-Level, Distributed Cache, Edge Cache(CDN)로 이어지는 다층적 배치 전략 채택
- Cache Hit Rate를 핵심 지표로 설정하여 DB 접근 횟수를 최소화하고 데이터 조회 경로를 최적화
- 메모리 한계 극복을 위해 데이터 접근 패턴에 따른 LRU, LFU, TTL 기반의 Cache Eviction 정책 적용
- 데이터 최신성 유지와 성능 사이의 Trade-off를 고려한 Cache Invalidation 메커니즘 구축
- Cache Stampede 방지를 통해 특정 키 만료 시 DB로 요청이 몰리는 현상을 제어하는 구조 설계
실천 포인트
1. 데이터 접근 패턴을 분석하여 LRU(최근 사용)와 LFU(빈도 기반) 중 적합한 Eviction 정책 선택
2. 원본 데이터(Source of Truth)와 캐시 간의 동기화 전략을 수립하여 Stale Data 발생 가능성 검토
3. 단일 서버 메모리 캐시의 한계를 파악하고 수평 확장 시 Distributed Cache 도입 시점 결정
4. 대규모 트래픽 환경에서 CDN 등 Edge Cache를 활용한 네트워크 레이턴시 감소 방안 적용