캐싱 (Caching)
- 데이터의 복제본 혹은 연산 결과를 임시로 저장하여 요청의 응답을 효율적으로 하는 기술
- 자주 사용되는 복잡한 연산의 결과 혹은 자주 찾는 데이터를 효율적으로 전달하는 것이 목적
- 장점
- 요청에 따라 빠르게 데이터를 전달할 수 있음
- 복잡한 연산 리소스 / 부하를 줄일 수 있음
- 단점
- 일관성의 유지가 어려움
- 아키텍처의 복잡도 증가
- 비용 증가
- 캐싱 주요 개념
- 원본 : 캐싱할 데이터 혹은 연산 결과를 제공하는 주체
- Cache Hit : 요청에 따라 캐시에 저장된 데이터로 응답할 수 있는 상황
- 캐싱에서 지향할 상황이며 원본에 요청 없이 응답 가능
- Cache Miss : 요청에 따른 데이터를 캐시에서 찾을 수 없는 상황
- 별도로 원본에 요청 혹은 다른 방식으로 응답 필요
- 캐시 만료(Invalidation /Eviction) : 캐시를 삭제하는 행위
- TTL(Time To Live) : 캐시가 얼마만큼 살아있는지를 나타내는 시간 단위
- 캐싱 방식
- 캐시에 원본 데이터를 채우는 다양한 정책
- Lazy Loading : 요청이 있을 때만 캐시에 원본 데이터를 채우는 정책
- 불필요한 요청이 없으나 최초 데이터 로딩이 필요함
- Eager Loading : 미리 캐시에 데이터를 채워두고 요청을 기다리는 정책
- 데이터가 항상 준비되어 있으나 모든 데이터를 채우기에 불필요한 캐시 용량이 낭비될 수 있고 최초 로딩이 매우 큰 리소스가 필요함
- Write Through : 데이터가 변경되거나 저장되는 시점에 원본과 캐시에 동시에 저장
- 데이터의 일관성이 항상 보장되지만 쓰기 과정이 복잡해지고 느려질 수 있음
- Write Back : 데이터를 캐시에 먼저 쓰고 후에 원본에 업데이트
- 쓰기가 빠르고 간단하지만 원본 도달 전 유실될 가능성 있음
- Lazy Loading : 요청이 있을 때만 캐시에 원본 데이터를 채우는 정책
- 캐시에 원본 데이터를 채우는 다양한 정책
- 캐시 만료 방식
- TTL(Time To Live) : 일정 시간이 지나면 만료
- 항상 일정 시간 후 데이터가 만료되고 갱싱할 수 있으나 모든 데이터를 항상 갱신 필요
- Least Recently Used : 가장 사용시점이 먼 캐싱 데이터부터 만료
- 사용이 발생한 데이터들을 계속 보관할 수 있으나 상황에 따라 비효율적일 수 있음
- Least Frequently Used : 가장 덜 사용된 데이터부터 만료
- 자주 사용된 데이터를 남겨둘 수 있으나 현재 자주 사용되지 않는 데이터도 같이 남겨둘 수 있음
- First in First Out : 먼저 들어온 데이터부터 만료
- 간단하지만 패턴을 고려하지 않아 비효율적
- 실전에서는 거의 쓰이지 않는 경향이 있다.
- TTL(Time To Live) : 일정 시간이 지나면 만료
- 사용 사례
- Content Delivery Network (CDN)
- ElastiCache (Redis / Memcashed)
- 랭킹, 세션, 데이터 등
- 웹 브라우저
- RAM
- DNS
반응형
'AWS' 카테고리의 다른 글
클라우드 컴퓨팅 / 클라우드 컴퓨팅 모델 / 클라우드의 용어 및 개념(aws 기초강좌 1~3) (3) | 2024.11.06 |
---|---|
암호화 및 SSL / TLS (0) | 2024.10.17 |
DNS(Domain Name System) 기초 (0) | 2024.10.15 |
OSI 7 Layer Model (4) - Session, Presentation, Application (1) | 2024.10.15 |
OSI 7 Layer Model (3) - Transport Layer (0) | 2024.10.15 |
댓글