About cache

정재헌·2023년 1월 1일
0

cache

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

메모리 계층 구조

데이터를 저장하는 공간의 속도와 용량은 반비례 관계. 데이터 저장 공간은 속도와 용량에 따라 특성에 맞게 역할을 나누어 사용하는 것이 좋다. 파레토의 법칙으로(2:8 법칙) 알 수 있듯이, 자주 쓰이는 데이터는 시간적 혹은 공간적으로 한 곳에 몰려 있을 가능성이 높다.

cache 작동 방식

원본 데이터와는 별개로 자주 쓰이는 데이터들을 복사해둘 캐시 공간을 마련한다. 데이터 요청이 들어오면 원본 데이터가 담긴 곳에 접근하기 전에 먼저 캐시 내부부터 찾는다. 캐시에 원하는 데이터가 없거나 너무 오래되어 최신성을 잃었으면 그 때서야 원본 데이터가 있는 곳에 접근하여 데이터를 가져오며 캐시에도 해당 데이터를 복사하거나 저장한다. 캐시 공간이 모자라게 되면 안쓰는 데이터부터 삭제하여 공간을 확보한다.

*database에서의 cache : 대개 데이터베이스는 쓰기보다는 읽기가 많으므로 자주 요청받는 쿼리의 결과를 캐싱해두면 효율이 오른다. 따라서 데이터베이스 자체에서 별도의 캐시를 운영한다.

**CDN(Content Delivery Network) : 구글은 각 통신사마다 Google Global Cache를 두어 인기 있는 유튜브 동영상은 미국 서버까지 접속할 필요 없이 국내 서버에서 처리하도록 하였다. 이처럼 세계 각지에 캐시 서버를 두어 전송 속도를 높이고 부하를 분산하는 시스템이 바로 CDN이다.

profile
백엔드 개발자

0개의 댓글