-
캐시(Cache)에 대하여 설명해주세요.CS지식 모음 2023. 3. 29. 13:56
제가 아는 캐시는 $ 캐시밖에 없습니다..
그래서 이번에는 캐시에 대하여 공부해봤습니다.
캐시 란...?
데이터나 자원을 미리 저장해놓는 임시 저장소 입니다.
일반적으로 캐시는 프로세서나 애플리케이션 내부에서 동작하며, 빠른 속도로 접근할 수 있고, 시스템의 성능을 개선할 수 있습니다.
캐시는 데이터의 일부만 저장하고 저장된 데이터는 일정 시간이 지나면 만료 됩니다.
캐시의 장,단점에 대해 설명해주세요.
장점
접근 속도가 빠릅니다.
- 캐시에 저장된 데이터나 자원은 빠른 접근이 가능하기 때문에, 매번 원본 데이터나 자원에 접근하는 것 보다 더욱 빠른 속도로 데이터나 자원에 접근할 수 있습니다.
시스템 성능이 개선됩니다.
- 빠른 접근 속도로 인해 시스템의 처리량이 개선되고, 더 많은 요청을 처리할 수 있습니다.
대역폭(Bandwidth)을 절약할 수 있습니다.
- 캐시에 저장된 데이터나 자원은 원본 데이터나 자원에 접근할 필요가 없으므로, 대역폭을 절약할 수 있습니다.
대역폭이란?
- 네트워크나 컴퓨터 시스템에서 전송 가능한 데이터 양의 총량. 초당 전송 가능한 양을 나타내는 Mbps, 또는 Gbps단위로 표시됩니다.
단점
캐시 크기에 제한이 있습니다.
- 캐시에 저장할 수 있는 데이터나 자원의 양에는 한계가 있으므로, 적절한 크기로 유지하는 것이 중요합니다.
- 캐시 압축을 할 수도 있습니다. 압축된 데이터는 해제시까지 일시적으로 처리성능이 떨어질 수 있지만 캐시 용량을 절약할 수 있습니다.
- 캐시 분산을 사용하면 전체 캐시 용량을 늘리거나, 각 서버의 캐시 용량을 적절히 설정하여 캐시 용량의 한계를 극복 할 수 있습니다.
- 다만 캐시 용량의 한계를 초과하는 경우 다른 대안을 고려해야 할 수 있습니다.
캐시가 최신 데이터나 자원을 보장하지 않습니다.
- 캐시에 저장된 데이터나 자원은 일정 시간이 지나면 만료되거나, 원본 데이터나 자원이 변경되면 갱신되어야 합니다.
- 캐시의 유효기간은 일반적으로 TTL(Time-To-Live)라는 개념으로 표현하는데, TTL이 만료되면 캐시는 갱신되어야 합니다.
TTL은 적절한 시간으로 설정해야 하며, 데이터나 자원의 업데이트 주기와 맞춰서 설정하는 것이 좋습니다.
- 이러한 단점을 극복하기 위해서는 캐시 무효화(Invalidation) 적극적인 캐싱(Proactive Caching) 등을 통해 일관성을 유지할 수 있습니다.
프론트엔드에서 캐시를 사용할 수 있는 영역을 2~3가지 제시해주세요.
자주 쓰이는 2가지만 가져와봤습니다.
브라우저 캐시
- 이미지,스크립트,스타일시트 등의 정적 파일을 캐시하여 같은 페이지에 다시 접속할 때 파일을 다시 다운로드하지 않아도 되서 성능 향상에 효과적입니다.
CDN(Content Delivery Network)
- 전 세계에 분산된 서버를 이용하여 콘텐츠를 전송하는 서비스로 CDN은 캐시를 이용하여 콘텐츠를 더 빠르게 전송하고, 더 적은 대역폭을 사용합니다. 정적 파일이나 미디어 파일을 캐시할 수 있습니다.
아 캐시..뭔가 어렵네요.
스토리지랑 비슷한 것 같아서 다음에는 스토리지를 한번 공부해봐야 겠습니다.
'CS지식 모음' 카테고리의 다른 글
React에 대한 면접질문 및 답변 리스트 (0) 2023.03.30 HTTP에 대해 설명해주세요. (0) 2023.03.30 프레임워크와 라이브러리의 차이점을 설명해주세요. (0) 2023.03.29 parameter와 argument의 차이 (0) 2023.03.28 Hoisting과 TDZ 대하여 (0) 2023.03.28