backEnd/Node.js

데이터 속도 향상 : Cache

kim_genius_ 2023. 12. 28. 11:45

 

Cache란?

데이터나 값을 미리 복사해 놓는 임시 장소를 가리킨다. 캐시는 캐시의 접근 시간에 비해 원래 데이터를 접근하는 시간이 오래 걸리는 경우나 값을 다시 계산하는 시간을 절약하고 싶은 경우에 사용한다. 캐시에 데이터를 미리 복사해 놓으면 계산이나 접근 시간없이 더 빠른 속도로 데이터에 접근할 수 있다.

 

예를들어 홈페이지를 들어가면 서버에서 화면에 띄워주기 위한 값을 DB에서 찾아서 불러온다. 그런데 매번 그렇게 하면 속도가 많이 느려질 것. 이때 cache란 저장소에 따로 저장을 해놓고 불러오면 빠른속도로 출력 가능하다.

 

저장공간 계층 구조

 

Cache의 등장 원리

 

상위 20%가 전체 생산의 80%를 해낸다는 법칙

CaChe 저장소는 값이 비싸다. 그래서 모든 데이터를 임시로 저장하기엔 무리가 따른다.

하지만 파레토의 법칙에 따르면 모든 데이터를 저장할 필요는 없다.

우리가 사용하는 데이터의 대부분(80%)는 전체 데이터의 일부(20%)만 사용하기 때문.

따라서 특정 데이터들만을 Cache에 저장해서 사용하면 효과적이다.

Cache의 사용구조

 

  1. 클라이언트가 서버로 데이터를 요청한다(회원정보, 페이지 제목,내용 등등)
  2. 서버는 우선 캐시를 확인한다. 요청받은 값들이 있다면 캐시에서 찾아서 클라이언트에 보내준다.
  3. cache에 값이 없다면 DB에서 찾아서 값을 보내준다. 
  4. chche에 값들을 저장한다.(너무 오래된 값 은 갱신한다)

참고

https://m.blog.naver.com/dbsgk123789/221159658487

https://sabarada.tistory.com/103