캐시(Cache)는 데이터나 자원의 접근 시간을 줄이기 위해 사용되는 메모리입니다.
장점
- 높은 가용성: 캐시에 저장된 데이터는 클라이언트 측에서 불러올 수 있기 때문에, 서버의 다운타임이나 네트워크 장애가 발생해도 데이터를 불러올 수 있습니다.
- 부하 감소: 캐시를 사용하면 원본 데이터나 자원에 접근하는 횟수를 줄일 수 있으므로, 서버나 네트워크의 부하를 줄일 수 있습니다.
- 비용 절감: 서버 리소스를 줄일 수 있어서 서버 비용을 줄일 수 있습니다.
- 성능 향상: 반복적으로 요청되는 데이터를 캐시에 저장해 놓으면 클라이언트에서 데이터를 바로 불러올 수 있어서, 네트워크 대역폭을 줄이고 더 빠르게 데이터를 표시할 수 있습니다.
단점
- 자원 낭비: 캐시에 저장할 수 있는 데이터의 용량에 제한이 있기 때문에, 캐시에 저장할 데이터를 신중하게 선택해야 합니다.
- 부정확성: 캐시는 항상 최신 데이터를 가지고 있지 않을 수 있습니다.
활용되는 곳
- 웹 브라우저
- 콘텐츠 전송 네트워크(CDN)
- 데이터베이스
- 운영체제
- 애플리케이션
프론트엔드에서 캐시를 사용할 수 있는 3가지 영역
- 브라우저 캐시: 브라우저 캐시는 웹 페이지를 방문할 때 자주 사용되는 자원을 저장하는 것입니다. 예를 들어, CSS 파일이나 이미지 파일과 같은 정적 자원은 브라우저 캐시에 저장하여 다음에 해당 페이지를 방문할 때 더 빠르게 로딩할 수 있습니다.
- CDN 캐시: CDN(Content Delivery Network) 캐시는 전 세계적으로 분산된 서버에 데이터를 저장하여 빠른 전송을 보장합니다. 이를 통해 서비스의 전송 속도와 성능을 향상시킬 수 있습니다.
- OCA(오픈커넥트어플라이언스)는 넷플릭스가 지난 2011년 개발한 콘텐츠전송네트워크(CDN) 솔루션
- 한국에 있는 사용자가 미국에 호스팅 된 웹 사이트에 접근하는 경우 한국에 위치한 PoP 서버에서 웹사이트 콘텐츠를 사용자에게 전송하는 방식
- 애플리케이션 캐시: 애플리케이션 캐시는 웹 애플리케이션에서 자주 사용되는 데이터나 자원을 저장하는 것입니다. 이를 통해 서버에 반복적으로 요청하지 않아도 되므로 서버의 부하를 줄일 수 있습니다. 예를 들어, HTML5에서는 웹 페이지를 오프라인에서 볼 수 있도록 지원하는 애플리케이션 캐시 기능이 제공됩니다.