기타

캐시(Cache)/캐시전략 이란?

인어공쭈 2023. 2. 28. 12:27

캐싱 전략은 웹 서비스 환경에서 시스템 성능 향상을 기대할 수 있는 중요한 기술이다. 

일반적으로 캐시(cache)는 메모리(RAM)를 사용하기 때문에 데이터베이스 보다 훨씬 빠르게 데이터를 응답할 수 있어 이용자에게 빠르게 서비스를 제공할 수 있다.

 

따라서 어느 종류의 데이터를 캐시에 저장할지, 얼만큼 데이터를 캐시에 저장할지, 얼마동안 오래된 데이터를 캐시에서 제거하는지에 대한 '지침 전략' 을 숙지할 필요가 있다.

 

크게 캐시 읽기 전략(Read Cache Strategy) / 캐시 쓰기 전략(Write Cache Strategy) 가 있다

 

캐시 읽기 전략 (Read Cache Strategy)

1. Look Aside 패턴

  • 데이터를 찾을때 우선 캐시에 저장된 데이터가 있는지 우선적으로 확인하는 전략. 만일 캐시에 데이터가 없으면 DB에서 조회함
  • 반복적인 읽기가 많은 호출에 적합.
  • 캐시와 DB가 분리되어 가용되기 때문에 원하는 데이터만 별도로 구성하여 캐시에 저장
  • 반복적으로 동일 쿼리를 수행하는 서비스에 적합한 아키텍처이다.

1. Read Through 패턴

  • 캐시에서만 데이터를 읽어오는 전략
  • 전체적으로 속도가 느림
  • 데이터 조회를 전적으로 캐시에만 의지
  • 읽기가 많은 워크로드에 적합

 

캐시 쓰기 전략 (Write Cache Strategy)

1. Write Back 패턴

  • 캐시와 DB 동기화를 비동기하기 때문에 동기화 과정이 생략
  • 캐시에 모아놨다가 DB에 쓰기 때문에 쓰기 쿼리 회수 비용과 부하를 줄일 수 있음
  • Write가 빈번하면서 Read를 하는데 많은 양의 Resource가 소모되는 서비스에 적합
  • 자주 사용되지 않는 불필요한 리소스 저장

2. Write Through 패턴

  • 데이터베이스와 Cache에 동시에 데이터를 저장하는 전략
  • 캐시의 데이터는 항상 최신 상태로 유지
  • 데이터 유실이 발생하면 안 되는 상황에 적합
  • 자주 사용되지 않는 불필요한 리소스 저장
  • 매 요청마다 두번의 Write가 발생하게 됨으로써 빈번한 생성, 수정이 발생하는 서비스에서는 성능 이슈 발생

3. Write Around 패턴

  • 모든 데이터는 DB에 저장 (캐시를 갱신하지 않음)
  • Cache miss가 발생하는 경우에만 DB와 캐시에도 데이터를 저장
  • 따라서 캐시와 DB 내의 데이터가 다를 수 있음 (데이터 불일치)
반응형

'기타' 카테고리의 다른 글

구글 계정 로그인 구현 (OAuth)  (0) 2023.06.22
웹팩(WebPack)이란?  (0) 2023.05.22
Module 이란?  (0) 2023.02.28
Bundle 이란? About Bundle and WebPack  (0) 2023.02.28
네이버 DEVIEW 2023 - SSR 환경에서의 Micro-Frontend  (0) 2023.02.28