[기술면접] 캐시

한재창·2023년 3월 29일
0
post-thumbnail

캐시의 장단점과 어떤 부분에 활용하는지 설명해주세요.

캐시의 장점으로는 디스크나 네트워크에서 데이터를 가져오는 것보다 훨씬 빠른 속도로 데이터에 접근할 수 있습니다. 또한 매번 데이터를 새로 요청하는 것보다 캐시를 사용하면 서버 부하를 줄이고, 빠른 응답 시간과 성능 개선 효과를 얻을 수 있습니다.
단점으로는 캐시에 저장할 수 있는 데이터의 양이 메모리 용량에 따라 한계가 있어 큰 용량의 데이터를 다루기가 어렵습니다. 또한 코드의 복잡성이 증가해 관리와 유지보수에 대한 비용이 증가할 수 있습니다.

프론트엔드에서 캐시를 사용할 수 있는 2~3가지 영역을 제시해주세요.

프론트엔드에서 캐시를 사용할 수 있는 영역은 첫번째로 브라우저 캐시가 있습니다. 웹 페이지에서 사용되는 이미지, 스크립트, 스타일 시트 등의 자원을 브라우저 캐시에 저장해둘 수 있습니다. 이를 통해 같은 자원에 대한 요청이 있을 때 서버에 요청하지 않고 브라우저 캐시에서 불러올 수 있습니다.
두번째로 로컬 스토리지 캐시가 있습니다. 로컬 스토리지는 브라우저 내에 데이터를 저장하는 기능입니다. 로컬 스토리지를 사용해 웹 페이지에서 자주 사용되는 데이터나 사용자 정보 등을 브라우저에 저장해두면, 이후에 같은 데이터나 정보를 요청할 때 서버에 요청하지 않고 로컬 스토리지에서 불러올 수 있습니다.

캐시(Cache)

  • 캐시(Cache)는 데이터나 정보를 미리 저장해두어 빠르게 접근하고 처리할 수 있도록 하는 기술입니다. 캐시를 사용하면 매번 데이터를 새로 요청하는 것보다 빠른 속도와 성능 개선 효과를 얻을 수 있습니다.

캐시의 지역성

  • 파레토 법칙과, 캐시에 저장되는 정보(지역성)

    • 캐시의 고단가 때문에, 캐시에 저장되야하는 정보는 선별된 정보여야 함
    • 파레토의 법칙처럼 자주, 그리고 반복해서 사용되는 데이터를 선별하는 데에 사용되는 것이 '지역성'
  • 시간적 지역성

    • 특정 데이터가 가까운 미래에 또 한번 데이터에 접근할 가능성이 높은 경우
    • 메모리 상의 같은 주소에 여러 차례 쓰기를 수행하는 경우
  • 공간적 지역성

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

    • 데이터가 순차적으로 액세스 되는 경향을 보임. 프로그램 내 명령어가 순차적으로 구성

캐시의 동작 방식

  • 데이터 요청이 들어오면 먼저 캐시에서 데이터를 탐색합니다.
  • 캐시가 없거나 오래된 경우 원본 데이터가 저장된 곳에서 데이터를 조회한 후 캐시에도 데이터를 복사 or 갱신합니다.
  • 캐시에 데이터가 있으면 캐시의 저장된 데이터를 제공합니다.
  • 오래된 데이터는 삭제합니다.
profile
취준 개발자

0개의 댓글