캐싱? 캐싱 전략?

김수연·2022년 7월 25일
1

오늘은 캐싱이 무엇인지에 대해 공부하고 캐싱과 캐싱전략에 대해 정리해볼 예정이다.
현재 DeliDeli프로젝트에서 매장검색할 때 캐싱을 적용시켰다.
매장리스트를 빠르게 불러오기 위해서이다.

캐시?

자주 액세스하는 데이터의 성능을 향상시키는 데 사용되는 더 빠르고 더 비싼 소량의 메모리

즉, 컴퓨터 성능을 향상시키기 위해 사용되는 메모리이다

디스크에서 불러오는 것이 속도가 느리기때문에 메모리에서 빨리 가져와서 시간을 줄여주는 것이다

어떨 때 사용하는 것이 좋을까?

  • 자주 조회되는 데이터일때
  • 잘 변하지 않는 데이터일때
  • 반복적으로 같은 결과를 돌려줄때

캐싱전략

캐싱전략은 애플리케이션에서 데이터를 읽고 쓰는 방법에 따라 달라질 수 있다.

알아볼 캐싱전략은 다섯가지이다.

읽기 전략

Look aside(Lazy Loading)

캐시를 먼저 확인한 후에, 캐시에 데이터가 있으면 해당 데이터를 읽어오는 방법이다
만약, 존재하지 않으면 데이터를 DB에서 가져온 후에 캐시에 저장한다

Read-through

데이터를 읽을 때 캐시로만 데이터를 읽어오는 방법이다.
만약 데이터가 캐시에 없을 때 DB에서 데이터를 캐시로 저장한다.

Lazy Loading과 Read-through 차이점?

Look aside같은 경우는 애플리케이션이 직접 DB에 데이터를 조회하는데, Read-through는 캐시가 DB에 데이터를 직접 조회하고 로드하는 방식이다.

쓰기전략

write-around

DB에 저장하고 읽은 데이터만 캐시에 저장하는 방식
모든 데이터가 일단 DB에 저장된다.
그 후에 캐시에 없어서 캐시미스가 일어날 때만 캐시로 데이터를 끌고오는 방법이다.

  • 자주 읽지않을 데이터가 캐시에 로드되지않아서 메모리를 아낄 수 있다.
  • 캐시와 DB사이의 데이터일관성이 지켜지지않을 수 있다
    (캐시에 로드되고 DB에 값이 바뀔 때)
  • DB에 저장한 후 읽지않으면 데이터가 캐시되지않는다

write-through

데이터를 먼저 캐시에 저장한 후 DB에 저장하는 방식

  • DB와 캐시의 데이터일관성을 보장해줄 수 있다.
  • 저장할때마다 캐시와 DB 둘다 저장되기때문에 상대적으로 속도가 느리다
  • 데이터가 한번만 사용되는 경우에도 캐시에 넣게 되서 불필요할 수 있다.

write-back

모든 쓰기 작업이 캐시로 전달되고 일정시간에 DB에 데이터가 저장되는 방식

  • 캐시에 장애가 발생해서 데이터 유실이 생길 수 있는 문제가 있다

참고자료
https://aws.amazon.com/ko/caching/
https://codeahoy.com/2017/08/11/caching-strategies-and-how-to-choose-the-right-one/ https://www.techtarget.com/searchstorage/definition/cache
https://azure.microsoft.com/ko-kr/resources/cloud-computing-dictionary/what-is-caching/#how-does-caching-work

profile
백엔드 개발자 (ง •̀ω•́)ง✧

0개의 댓글