[Back-End] Cache Aside (Lazy Loading)이란?

2025. 2. 3. 22:03·Back-end
목차
  1. Cache Aside (Lazy Loading) 방식
  2. Cache Inconsistency를 해소하기 위한 쓰기 전략
반응형
매일메일을 통한
하루하루 CS 공부하기

 

Cache Aside (Lazy Loading) 방식

Cache hit 시 캐시에서 데이터를 불러오며, Cache miss 시 원본 DB에서 조회하여 반환한다

 

애플리케이션은 Cache miss가 발생하면 해당 데이터를 캐시에 적재한다.

 

  • 장점
    • 실제 요청된 데이터만 캐시에 저장되므로 불필요한 데이터 캐싱을 줄일 수 있다.
    • 캐시에 문제가 발생해도 애플리케이션은 원본 데이터에 직접 접근할 수 있기 때문에 서비스가 계속 작동할 수 있다.
  • 단점
    • Cache miss가 발생하는 경우에만 데이터를 캐시에 적재하기 때문에, 원본 데이터와 캐시가 일치하지 않는 Cache Inconsistency가 발생할 수 있다.
    • 초기에는 대량의 캐시 미스로 인해 DB 부하 발생 가능

 

Cache Inconsistency를 해소하기 위한 쓰기 전략

Cache Inconsistency란, 위에서 설명했듯 원본 DB에 저장된 데이터와 캐시에 저장된 데이터가 일치하지 않는 상황을 의미한다.

 

 

1. Write Through

 

원본 데이터에 대한 변경분이 생긴 경우, 매번 캐시에 해당 데이터를 찾아 함께 변경

 

2번의 쓰기가 발생하지만, 캐시는 항상 최신 데이터를 갖는다.

무작정 데이터를 갱신하거나 저장하는 방식은 리소스 낭비가 될 수 있으니, expiration time을 함께 사용하는 것이 좋다.

 

2. Cache Invalidation

 

원본 데이터에 대한 변경분이 생긴 경우, 캐시 데이터를 만료시키는 것.

 

-> Write Through의 단점 보완

 

3. Write Back

 

원본 데이터에 대한 변경분이 생긴 경우, 캐시를 먼저 업데이트 한 이후 원본 데이터 변경

 

Disk Write 작업을 비동기 작업으로 수행하여 성능을 개선할 수 있다.

 

원본 데이터와 캐시가 일시적으로 일치하지 않을 수 있있기 때문에 쓰기 작업이 빈번하며 일시적인 캐시 불일치를 허용하는 서비스에서 유용하게 사용될 수 있다.

 

반응형

'Back-end' 카테고리의 다른 글

[DataBase] CAP 정리란?  (0) 2025.02.12
[Back-End] 캐시 스탬피드 현상이란?  (0) 2025.02.10
[DataBase] Transaction - ACID란?  (0) 2025.02.03
[Back-End] 로드밸런싱 톺아보기  (0) 2025.01.30
[Back-End] DB Replication이란 무엇인가.  (0) 2025.01.24
  1. Cache Aside (Lazy Loading) 방식
  2. Cache Inconsistency를 해소하기 위한 쓰기 전략
'Back-end' 카테고리의 다른 글
  • [DataBase] CAP 정리란?
  • [Back-End] 캐시 스탬피드 현상이란?
  • [DataBase] Transaction - ACID란?
  • [Back-End] 로드밸런싱 톺아보기
류건
류건
개발 일지
  • 류건
    건's Dev
    류건
  • 전체
    오늘
    어제
    • 분류 전체보기 (96)
      • Back-end (56)
        • Spring (31)
        • Nest.js (3)
        • Next.js (2)
        • Node.js (3)
      • Infra & Cloud (21)
        • Cloud Computing (6)
        • Docker (3)
        • AWS (7)
      • Java (2)
      • Computer Science (12)
        • Computer Network (0)
        • Operating System (0)
        • 정보 보호와 시스템 보안 (12)
        • Software Architecture (0)
      • 회고록 (4)
        • 우아한테크코스 (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    EC2
    Github Actions
    Lock
    Spring
    Nest.js
    Spring Boot
    JPA
    Webflux
    Docker
    ddl-auto
    https
    보안
    aws
    어노테이션
    고가용성
    Kafka
    ssl
    WebClient
    정보보호
    CI/CD
    오블완
    CD
    JWT
    db
    CORS
    public key
    express.js
    nginx
    티스토리챌린지
    node.js
  • 최근 댓글

  • 최근 글

  • 반응형
  • hELLO· Designed By정상우.v4.10.0
류건
[Back-End] Cache Aside (Lazy Loading)이란?
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.