본문 바로가기
카테고리 없음

[프론트엔드 면접 대비] 캐시의 장단점과 활용

by 지 요니 2023. 7. 21.

캐시란?

자주 사용하는 데이터나 값을 미리 복사해 놓은 임시 장소를 의미한다.

캐시의 장단점

🎠장점

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

따라서 반복적으로 동일한 결과를 반환해야 할 때 접근 시간과 계산시간을 절약할 수 있습니다. 

또한, 캐시를 이용하면 데이터를 다시 계산하거나 다시 가져올 필요가 없기 때문에 서버 부하를 줄일 수 있어 더 나은 서비스를 제공할 수 있습니다.

 

🎠단점

메모리 저장공간은 속도가 빠를수록 비용이 비싸고, 메모리공간이 상대적으로 작습니다.

캐시에 저장할 수 있는 데이터의 양에는 제한이 있기 때문에, 메모리 용량 부족으로 인한 성능 저하가 발생할 수 있습니다.(캐시 메모리 제한)

또한, 캐시에 저장된 데이터가 실제 데이터와 일치하지 않을 경우 문제가 발생할 수 있습니다. 캐시의 일관성을 유지하기 위한 추가적인 노력이 필요합니다.(캐시 일관성 유지)

프론트엔드에서 캐시의 활용영역

📌 브라우저 캐싱(Browser Caches)
  • 브라우저는 이미지, 스타일시트, 자바스크립트 파일 등의 정적 리소스를 캐시한다. 따라서 이전에 방문했던 페이지, 썸네일 등을 서버로 요청하지 않고, 브라우저에 캐싱을 해두면 사용자는 자신의 요청을 서버로부터 기다리지 않고,(다운로드할 필요없이) 바로 캐시메모리로 응답 받을 수 있어 웹 서핑이 빠르다고 느끼고, 서버는 불필요한 요청을 받지않아 과부하를 피할수 있다. (한번 받아온 리소스들을 재사용하여 속도가 빨라짐)
📌 Proxy Caches
  • 웹 브라우저와 서버 사이에 proxy 라는 것을 두는 방식이다.
    proxy는 “대리인” 이라는 뜻의 영어 단어로서, 중간에서 뭔가를 대신해주는 것을 '프록시'라고 한다.
    프록시의 경우 여러 컴퓨터로부터 요청을 받고 처리하다 보니 같은 데이터가 자주 접근될 확률이 높아져서 캐시의 성능이 좋아지고, 데이터를 캐시에서 반환하는 확률이 더 높아진다.
    (조직 내에서 접속하는 웹사이트의 리소스들을 캐시하여 속도가 빨라지고 네트워크 사용량을 줄임)
📌 메모이제이션
  • 메모이제이션은 함수의 결과를 캐싱하여 다음에 같은 함수를 호출할 때 다시 계산할 필요 없이 이전에 계산한 값을 반환하는 기술이다. 

댓글