캐시(Cache)

JiHyun·2023년 6월 1일
0
post-thumbnail

📌 캐시란?

자주 사용하는 데이터나 값을 미리 복사해 놓는 임시 장소를 가리킨다.
저장공간이 작고 비용이 비싼 대신 빠른 성능을 제공한다.


📌 웹 캐시

브라우저가 요청하는 HTML, CSS, JavaScript 등의 정적 리소스에 대해 첫 요청시 파일을 내려받아 캐시에 복사본을 저장하고, 이후 동일한 URL의 요청엔 다시 내려받지 않고 캐시에 저장된 파일을 사용하여 더 빠른 웹페이지를 보여주는 것이다.

📝 종류

Browser Cache

  • 브라우저 또는 HTTP요청을 보내는 클라이언트의 하드디스크 혹은 메모리(RAM)에 저장되는 캐시이다
  • 사용자마다 할당되는 개인화된 캐시이며 클라이언트 간 공유는 불가능
  • 브라우저의 뒤로가기 버튼 혹은 재방문하는 페이지인 경우에 사용
  • HTML의 메타 태그로 캐시 속성을 지정하거나, HTTP요청 및 응답 헤더에 지정하는 방법으로 제어가능

메타 태그로 캐시 속성 지정하는 방법

  • Expires 속성 사용
<!-- 지정한 날짜까지만 캐시 유효  -->
<meta http-equiv="Expires" content="Thu, 01 Jun 2023 14:16:00 GMT">

<!-- 즉시 캐시 만료 -->
<meta http-equiv="Expires" content="0">
  • Cache-Control, Pragma 속성 사용
<!-- 캐시를 하지 않음 -->
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate"/>

<!-- 캐시를 사용하지만 서버로 요청을 보내 유효성 검증(Cache-Control: no-cache와 동일) -->
<meta http-equiv="Pragma" content="no-cache"/>

서버캐시

웹 사이트 운영자가 제어할 수 없고, 웹 서버에서 직접 관리하는 캐시이다. 클라이언트가 웹페이지를 방문할 때 캐시 스캔 후 저장된 콘텐츠를 전송한다. 데이터베이스 조회 결과, 계산 결과 등을 저장하여 서버의 처리 시간을 줄이고 응답 속도가 빠르다.

  • Object cache : 데이터베이스 쿼리를 저장하여 다음에 데이터가 필요할 때 데이터베이스를 쿼리할 필요없이 캐시에 전달되도록 한다.
  • Opcode cache : 빠른 실행을 위해 미리 컴파일 된 PHP코드를 저장한다.

Proxy Cache

일반적으로 기업이나 ISP(Internet Service Provider)에 의해 운영되며, 대역폭 사용을 줄이고 웹 접근 속도를 빠르게 하기 위해 사용된다. 프록시 서버에 콘텐츠를 저장해서 다수의 사용자와 공유할 수 있다는 장점이 있으며 주로 회사나 IPS의 방화벽에 설치된다

프록시 서버(Proxy server)

  • 클라이언트에서 서버로 접속할 때 다이렉트 접속이 아닌 중간에 대신 전달 해 주는 서버이다.
  • 주로 CDN과 VPN에 활용된다

CDN(Content Delivery Network)

  • 전 세계 여러 위치에 분산된 서버 네트워크에 데이터를 캐시하는 방식
  • 원격 서버가 아닌 클라이언트와 가장 가까운 서버에서 데이터를 받아옴
  • 적절하게 사용하면 데이터 사용량이 많은 어플리케이션의 페이지 로딩 속도를 개선할 수 있음.
profile
비전공자의 개발일기📝

0개의 댓글