Computer Science/Network

캐시/ 웹 캐시(Cache)란? (개념/ 사용 이유/ 장점/ 동작 원리)

JeongKyun 2022. 6. 1.
반응형

서론


요즘 웹/ 모바일 등 개발에 있어 캐시 사용을 안한것을 찾기가 어려울 정도로 캐시 사용이 대중화가 되었다. 이 캐시(Cache)가 무엇이고 어떻게 사용하는지 한번 알아보자.

 


 

캐시(Cache)란?


캐시(Cache)란 자주 사용하는 데이터나 값을 미리 복사해 놓는 임시 장소를 말한다.

 

캐시는 캐시의 접근 시간에 비해 원래 데이터를 접근하는 시간이 오래 걸리는 경우나 값을 다시 계산하는 시간을 절약하고 싶은 경우에 사용한다.

 

캐시에 데이터를 미리 복사해 놓으면 계산이나 접근 시간 없이  더 빠른 속도로 데이터에 접근할 수 있다.

 

정리

1. 접근 시간에 비해 원래 데이터를 접근하는 시간이 오래 걸리는 경우 사용한다.

2. 반복적으로 동일한 결과를 돌려주는 경우(특정 이미지 or 썸네일 등) 사용한다.

 


 

지역성(Locality)


모든 데이터를 캐시에 담기에는 저장 공간이 그리 크지않기 때문에 힘들다. 그래서 보통 캐시는 지역성을 나누어 분류한다.

 

지역성이라는 단어가 처음엔 어렵게 느껴질 수 있지만 해당 내용들을 보면 이해하는데 어려운 내용은 아니니 한번 편하게 읽어보길 바란다. 

 

 

시간적 지역성

특정 데이터가 한번 접근되었을 경우 가까운 미래에 또 한번 데이터에 접근할 가능성이 높은 것을 말한다. 즉, 한 번 가져왔던 데이터를 또 쓸 일이 있다는 의미를 말한다.

 

이런 경우 캐시에 한번 가져와서 저장해놓고 여러 번 사용하게 되면 메모리에 접근하는 횟수가 줄어든다. 따라서 캐시는 반복적으로 사용되는 데이터가 많을수록 높은 효율성을 낼 수 있다.

 

 

공간적 지역성 

특정 데이터와 가까운 주소가 순서대로 접근되었을 경우 공간적 지역성이라고 한다. CPU 캐시나 디스크 캐시의 경우에는 한 메모리 주소에 접근할 때 그 주소뿐 아니라 해당 블록을 전부 캐시에 가져오게 된다.

 

이 때 메모리 주소를 오름차순이나 내림차순으로 접근한다면 캐시에 이미 저장된 같은 블록의 데이터를 접근하게 되므로 캐시의 효율성이 크게 향상된다.

 

다시 말해 앞으로 사용할 데이터들이 가져올 블록안에 모여있는 것을 말하는 것이다. 필요한 데이터가 모여있다면 한번만 메모리에 접근해도 필요한 데이터들을 가져올 수 있다는 것이다.

 

만약 데이터가 모여있지 않다면 Cache Miss가 날 확률이 높아지고 메모리에 여러번 접근하게되어 효울성이 떨어지게 된다.

 


 

웹 캐시(Web Cache)란?


위에 작성한 것은 기본적은 캐시의 개념들에 대해 알아본 것이고 필자가 중점적으로 알아볼 내용은 웹 캐시이다.

 

이 웹 캐시는 사용자(Client)가 웹 사이트(Serve)에 접속할 때, 정적 컨텐츠(이미지, JS, CSS 등)를 특정 위치(Client, Network 등)에 저장하여,

 

웹 사이트 서버에 해당 컨텐츠를 매번 요청하여 받는 것이 아니라, 특정 위치에서 불러옴으로써 사이트 응답시간을 줄이고 서버 트래픽 감소 효과를 볼 수 있는 것을 말한다.

 

이 웹 캐시에 대한 동작 원리와 흐름(프로세스)은 다음 글에서 자세히 알아볼 수 있다.

댓글

💲 많이 본 글