반응형
High Performance Series 01
데이터를 가장 빨리 가져오는 법,
Local Cache와 Global Cache
안녕하세요, code-resting입니다. 모든 요청을 데이터베이스(DB)까지 보내고 계신가요? 2026년 대규모 트래픽을 처리하는 환경에서 DB는 가장 귀한 자원이자 병목의 주원인입니다. 오늘은 데이터를 DB보다 훨씬 가까운 곳에 두고 빠르게 서빙하는 캐시 전략의 두 갈래를 완벽히 비교해 보겠습니다.
1. 속도의 끝판왕: Local Cache
서버 애플리케이션 내부의 메모리(Heap)에 데이터를 저장하는 방식입니다. Caffeine이나 Ehcache가 대표적입니다.
- 🚀 장점: 네트워크 통신이 없어 속도가 압도적으로 빠릅니다.
- ❌ 단점: 서버가 여러 대일 때 데이터 정합성이 깨집니다. 서버 A의 캐시와 서버 B의 캐시 내용이 다를 수 있습니다.
2. 분산 환경의 표준: Global Cache
모든 서버 인스턴스가 공통으로 접근할 수 있는 별도의 캐시 서버를 두는 방식입니다. Redis가 사실상의 표준입니다.
- ✅ 장점: 서버가 늘어나도 데이터 일관성이 유지됩니다. 대용량 데이터 저장이 유리합니다.
- ⚠️ 단점: 네트워크 I/O가 발생하므로 로컬 캐시보다는 느립니다.
3. 한눈에 보는 비교 및 선택 기준
| 항목 | 로컬 캐시 (Caffeine) | 글로벌 캐시 (Redis) |
|---|---|---|
| 접근 속도 | 극도로 빠름 (In-memory) | 빠름 (Network I/O) |
| 데이터 정합성 | 낮음 (서버별 상이) | 높음 (중앙 관리) |
| 추천 용도 | 설정값, 코드성 데이터 | 세션, 랭킹, 실시간 통계 |
4. 실무의 정석: 다계층 캐싱 (Multi-level)
실제로 매우 높은 트래픽을 견뎌야 하는 서비스는 두 방식을 조합합니다.
- 1차 캐시(Local): 자주 조회되고 변경이 거의 없는 핵심 데이터 저장
- 2차 캐시(Global): 1차 캐시에 없는 데이터를 분산 저장소에서 확인
- Final(DB): 캐시에 모두 없을 때만 최종적으로 DB 조회
💡 마무리하며
어떤 캐시를 쓸지 고민할 때의 핵심은 "이 데이터가 얼마나 자주 바뀌는가?"와 "서버 간 데이터가 달라도 괜찮은가?"입니다. 2026년 분산 아키텍처 환경에서는 기본적으로 Redis를 고려하되, 극강의 성능이 필요한 설정값 등에는 로컬 캐시를 섞어 쓰는 영리함이 필요합니다.
728x90
반응형
'아키텍처' 카테고리의 다른 글
| Redis가 죽으면 서비스도 죽는다? Sentinel vs Cluster로 고가용성(HA) 구축하기 (0) | 2026.04.10 |
|---|---|
| 데이터가 꼬이지 않는 캐시 운영 전략: Cache-Aside부터 Write-Back까지 완벽 정리 (0) | 2026.04.08 |
| MSA 트랜잭션의 구원자: 2PC(Two-Phase Commit)와 Saga 패턴 완벽 이해 (0) | 2026.04.02 |
| 서버 한 대로 안 될 때: 로드밸런서(L4 vs L7)와 Nginx 리버스 프록시 완벽 이해 (0) | 2026.03.12 |
| MSA에서 겹치지 않는 ID 만들기: Twitter Snowflake 알고리즘의 원리와 구현 (0) | 2026.03.06 |
댓글