외부활동/immersion

캐시란 ?

softmoca__ 2024. 3. 18. 16:05
목차

캐시의 사용 이유

캐시 : 데이터나 값을 미리 복사해 놓는 임시 장소

보통 기본적으로 3Tier 아키텍처 구조를 많이 사용한다.

작은 서비스라면 문제가 없지만 사용자가 많아지고 서비스가 커진다면 클라이언트가 많아지고 요청이 많아저서 DB에 대한 부하도 증가 하게 된다. 그러한 DB의 부하를 줄이기 위해 캐시를 도입한다.

 

약 80%의 결과가 20%의 원인으로 부터 온다는 법칙

이런 법칙을 캐시에도 적용을 시켜 이해해 보면 직관적으로 빠른 이해를 할 수 있다.

캐시에 자주 사용되는 약 20%의 데이터를 미리 캐싱해 둔다면 효과적인 성능 향상을 기대할 수 있다.

 

공간적 지역성 시간적 지역성

공간적 지역성 :참조된 주소와 인접한 주소의 내용이 다시 참조되는 특성

시간적 지역성 : 사용 되었던 데이터가 빠른 시일 내에 다시 사용될 가능성이 높다.

 

캐시의 전략 패턴

크게 읽기 전략 쓰기 전략이 있다.

읽기 전략 : look aside, read through

쓰기 전략  : Write Around, Write Back, Write Through

 

 

 

읽기 전략

look aside(옆(캐시) 곁(DB))

장점 : 캐시에 문제가 생기는 경우 DB로 요청을 위임

단점 : 캐시, DB의 데이터 정합성 유지 어려움, 첫 조회시 DB에 과부하 발생

 

 

 

read through(항상 캐시를 통해서 읽는다)

장점 : 캐시, DB간의 데이터 정합성 보장

단점 : 캐시가 죽으면 어플리케이션에 문제 발생

 

 

쓰기 전략

Write Around(쓰기 우회,캐시를 기본적으로 안쓰며 읽기 쓰기와 혼합)

장점 : 성능이 좋고 빠르다

단점 : 캐시,DB의 데이터 정합성 유지가 어렵다

 

 

Write Back(나중에 쓴다.)

장점:쓰기 횟수 비용을 줄일 수 있다.

단점 :캐시의 데이터 유실 문제

 

 

Write Through( 항상 캐시를 통해서 저장)

장점 :데이터 정합성이 보장됨

단점 :두 번의 쓰기가 항상 진행 되기 때문에 성능 고려

 

 

캐시 사용시 주의 사항

  1. 자주 사용되면서 변경이 되지 않는 데이터
  2. 유실되어도 크게 문제가 없는 데이터
  3. 데이터베이스와 함께 사용할 때 데이터 정합성 문제 고려

 

 

https://www.youtube.com/watch?v=tVZ15cCRAyE

https://yoongrammer.tistory.com/101