🗂 캐시의 장단점과 어떤 부분에 활용하는지 설명해주세요.
캐시란?
- 자주 사용하는 데이터나 값을 미리 복사해 놓은 임시 장소를 의미
📌 장점
- 캐시에 데이터를 미리 복사해 놓으면, 계산이나 접근 시간 없이 더 빠른 속도로 데이터를 접근 할 수 있습니다. 반복적으로 동일한 결과를 돌려주는 경우(특정 이미지 or 썸네일) 사용하거나 접근 시간에 비해 원래 데이터에 접근하는 시간이 오래 걸리는 경우나 값을 다시 계산하는 시간을 절약하고자 하는 경우에 사용한다.
📌 단점
- 메모리 저장공간은 속도가 빠를 수록 용량이 작고 가격이 높습니다. 그래서 가격때문에 캐시에 저장할 적은 양의 정보를 잘 선택하는 것이 비용도 절약하고 효율도 높이는 방법이다.
프론트엔드에서는 이미지, CSS, JS 등을 캐싱하여 웹 페이지 로딩 속도를 향상시키는데 활용됩니다.
이를 통해 사용자는 빠르게 페이지를 로딩할 수 있어 더 나은 사용자 경험을 누릴 수 있습니다.
또한, 캐시를 활용하면 서버에 부하를 줄일 수 있어 더 나은 서비스를 제공할 수 있습니다.
다만, 사용자에 따라 개인화된 페이지나 콘텐츠가 자주 변하는 페이지의 경우에는 캐시를 하지 않는 것이 좋습니다.
🗂 프론트엔드에서 캐시를 사용할 수 있는 2~3가지 영역을 제시해주세요.
📌 브라우저 캐싱
- 이전에 방문했던 페이지, 제목의 썸네일 등을 서버로 요청하지 않고, 브라우저에 캐싱을 해두면 사용자는 자신의 요청을 서버로부터 기다리지 않고, 바로 캐시메모리로 응답 받을 수 있어 웹 서핑이 빠르다고 느끼고, 서버는 불필요한 요청을 받지않아 과부하를 피할수 있다. (한번 받아온 리소스들을 재사용하여 속도가 빨라짐)
📌 proxy
- 웹 브라우저와 서버 사이에 proxy 라는 것을 두는 방식이다.
proxy는 “대리인” 이라는 뜻의 영어 단어로서, 중간에서 뭔가를 대신해주는 것을 '프록시'라고 한다.
프록시의 경우 여러 컴퓨터로부터 요청을 받고 처리하다 보니 같은 데이터가 자주 접근될 확률이 높아져서 캐시의 성능이 좋아지고, 데이터를 캐시에서 반환하는 확률이 더 높아진다.
(조직 내에서 접속하는 웹사이트의 리소스들을 캐시하여 속도가 빨라지고 네트워크 사용량을 줄임)