[기술면접] Cache

윤후·2022년 6월 28일
0

기술면접

목록 보기
26/28

Cache란

자주 사용하는 데이터나 값을 미리 복사해 놓는 임시 장소이다.
아래와 같은 저장공간 계층구조에서 확인할 수 있듯, Cache는 저장 공간이 작고 비용이 비싼 대신 빠른 성능을 제공한다.

즉, Cache란 나중에 요청할 결과를 미리 저장해둔 후 빠르게 서비스해주는 것을 의미한다. 미리 결과를 저장하고 나중에 요청이 오면 그 요청에 대해 DB또는 API를 참조하지 않고 Cache에 접근하여 요청을 처리하게 된다.

어떤 정보를 Cache에 담을까?

모든 데이터를 Cache에 담기에는 저장공간이 너무나도 작다. 그렇기 때문에 소수의 데이터를 선별해야한다. 이때 사용되는 것이 지역성이다.

📌 시간 지역성

특정 데이터가 한 번 접근되었을 경우 가까운 미래에 또 한번 데이터에 접근할 가능성이 높은 것을 말한다. 메모리 상의 같은 주소에 여러차례 쓰기를 수행할 경우 상대적으로 작은 크기의 Cache를 사용해도 효율성을 꾀할 수 있다.

📌 공간 지역성

특정 데이터와 가까운 주소가 순서대로 접근되었을 경우를 공간적 지역성이라고 한다. CPU Cache나 디스크 Cache의 경우 한 메모리 주소에 접근할 때 그 주소뿐 아니라 해당 블록을 전부 캐시에 가져오게 된다. 이때 메모리 주소를 오름차순이나 내림차순으로 접근한다면 Cache에 이미 저장된 같은 블록의 데이터를 접근하게 되므로 Cache의 효율성이 크게 향상된다.

📌 순차 지역성

공간 지역성과 함께 설명되기도 한다. 데이터가 순차적으로 엑세스되는 경향을 보이며 프로그램 내의 명령어가 순차적으로 구성된다.

Cache의 동작 방식

  1. 데이터 요청이 들어오면 먼저 Cache에서 데이터를 탐색.
  2. Cache가 없거나 오래된 경우 원본데이터가 저장된 곳에서 데이터를 조회 후 Cache에도 데이터를 복사/갱신
  3. Cache에 데이터가 있으면 Cache저장된 데이터를 제공
  4. 오래된 데이터는 삭제

Cache의 장단점

📌 Cache의 장점

  • Cache에 데이터를 미리 복사해 놓으면, 계싼이나 접근 시간 없이 더 빠른 속도로 데이터에 접근할 수 있다.
  • 접근 시간에 비해 원래 데이터에 접근하는 시간이 오래 걸리는 경우, 혹은 값을 다시 계산하는 시간을 절약하고자 하는 경우에 사용한다.

📌 Cache의 단점

  • Cache는 비용이 많이든다. 메모리 저장공간은 속도가 빠를수록 용량이 작고 가격이 높아진다.
profile
궁금한걸 찾아보고 공부해 정리해두는 블로그입니다.

0개의 댓글