본문 바로가기

SSAFY TechTalk Study

Day 4 : 캐시, 캐싱이란 무엇인가?

💫작성자 및 원본 글💫

eye1228 (https://github.com/ssafy-tech-concert/ssafy-tech-concert/blob/master/web/Cache.md)

 

목차

  1. 캐시(Cache) 란?
  2. 캐시의 사용
  3. 캐시 종류
  4. 지역성
  5. 캐싱

 

캐시(Cache) 란?

"자주 사용하는 데이터나 값을 미리 복사해 놓는 임시 장소"

 

👉 다른 저장공간 계층과는 달리 저장 공간이 작고, 비용이 비싼 대신 빠른 성능을 제공함.

 

👉 속도가 빠른 장치와 느린 장치에서 속도 차이에 따른 병목 현상을 줄이기 위한 메모리 공간

 

👉 데이터의 지역성이라는 특성을 이용해서 성능을 개선한다.

 

 

 

캐시의 사용

👉 반복적으로 동일한 결과를 돌려주는 경우 많이 쓰임.(ex : 썸네일)

 

👉 Cache는 반복적으로 데이터를 불러오는 경우, 지속적으로 DBMS 혹은 서버에 요청하는 것이 아닌 Memory에 데이터를 저장하였다가 불러서 쓰는 것을 의미.

 

① Cache Hit : 원하는 데이터가 캐시에 존재할 경우 해당 데이터를 반환하는 것.

 

② Cache Miss : 원하는 데이터가 캐시에 존재하지 않을 경우.이 때 DBMS 혹은 서버에 요청을 해야 한다.

 

👉 캐시를 쓰는 이유 : 소수의 정보, 혹은 상품 등에 요구가 몰려드는 경우 요구가 몰려드는 정보, 데이터 등을 미리 캐시로 저장해 두면 리소스 사용량이 줄고, 성능은 대폭 향상 시킬 수 있기 때문이다.

 

 

캐시 종류

캐시는 Local Cache와 Global Cache 가 있다.

 

Local Cache

  • 장비 내에서만 사용되는 캐시, Local 장비의 리소스를 이용
  • Local에서만 작동하기 때문에 속도가 빠르다.
  • Local에서만 작동하기 때문에 다른 서버와 데이터 공유가 힘들다.

 

Global Cache

  • 여러 서버에서 Cache Server에 접근하여 사용하는 캐시로 분산된 서버에서 데이터를 저장하고 조회 가능.
  • 네트워크를 통해 데이터를 가져오므로, 상대적으로 느림
  • 별도의 Cache 서버를 이용하기 때문에 서버 간의 데이터 공유가 쉽다.

 

 

지역성

 

1. 시간적 지역성

어떠한 데이터에 한번 접근해서 가져온 경우, 그 데이터가 곧 또 한번 접근할 가능성이 높은 것을 시간 지역성이라 한다. 
이때 캐시는 방복으로 사용되는 데이터가 많을 수록 높은 효율을 낼 수 있다.

 

2. 공간적 지역성

특정 데이터와 가까운 주소가 순서대로 접근되었을 경우 공간적 지역성이라고 한다.
즉, 앞으로 사용될 가능성이 높은 데이터들이 가져올 블록 안에 많이 모여있는 것을 의미한다.
이는 한번만 메모리에 접근해도 필요한 데이터를 가져올 수 있다.

 

캐싱(Cacheing)

 

캐시에서 데이터를 가져와서 접근하는 방식을 말한다.
자주 접근되는 데이터를 더 빠른 속도의 메모리상에 가지고 와서 연산을 수행하여 성능을 높이는 것이 목표이다.