자주 사용하는 데이터나 값을 미리 복사해 놓는 임시 장소
저장 공간이 작고 비용이 비싼 대신 빠른 성능을 제공
즉, DBMS 혹은 서버에 요청하는 것이 아니라 Memory에 데이터를 저장하였다가 불러다 쓰는 것을 의미한다.
일반적으로 RAM(Random Access Memory), InMemory 같이 빠르게 액세스할 수 있는 하드웨어에 저장되며, 소프트웨어 구성 요소와 함께 사용될 수 있다.
** 커널(kernel) **
운영 체제의 핵심이 되는 컴퓨터 프로그램으로, 시스템의 모든것을 완전히 제어한다.
운영 체제의 다른 부분 및 응용 프로그램 수행에 필요한 여러 가지 서비스를 제공한다.
의미
속도가 비교적 느린 데이터베이스에서 캐시로 데이터 접근이 시간적, 공간적으로 가깝게 일어나는 것을 의미한다.
두 가지 지역성이 있는데 이를 고려하여 설계할 수록 캐시 적중율을 높일 수 있다.
시간적 지역성
특정 데이터가 한번 접근되었을 경우, 가까운 미래에 또 한번 데이터에 접근할 가능성이 높은 것
즉, 서비스에서 시간 내에 얼마나 많이 사용될 것인가에 대한 것이다.
공간적 지역성
특정 데이터가 가까운 주소에서 참조하게 되는 것을 의미한다.
예를 들어, 배열은 순차적으로 데이터에 대한 접근이 이루어지며, 배열의 원소 하나하나는 메모리에 순차적으로 저장되고 메모리 주소 역시 순차적으로 참조하게 된다. 이를 공간적 지역성이 성립한다고 볼 수 있다.
캐시의 장점으로는 이미 계산되어져 있는 데이터를 빠르게 가져다 쓰는 것이기 때문에 반복적으로 동일한 결과를 반환해야 할 때 접근 시간과 계산시간을 절약할 수 있다. 단점으로는 메모리 저장공간은 용량이 작고 가격이 높다.
따라서 캐시 히트율과 시간적 지역성, 공간적 지역성, 데이터의 반복적인 행동과 사용빈도를 고려하여 설계해야 한다.
참고 자료
1) https://ko.wikipedia.org/wiki/%ED%83%80%EC%9E%84_%ED%88%AC_%EB%A6%AC%EB%B8%8C
2) https://ko.wikipedia.org/wiki/%EC%BA%90%EC%8B%9C
3) https://docs.aws.amazon.com/ko_kr/AmazonElastiCache/latest/red-ug/Strategies.html
4) https://mangkyu.tistory.com/69
5) https://aws.amazon.com/ko/caching/
좋은 글 감사합니다!