[WP] 캐싱 유형과 4가지 웹 캐시 종류

워드프레스를 포함한 웹사이트를 운영하면 사이트 로딩 속도가 중요한 것을 알게 됩니다. 이때 캐시(cache) 기능을 고려하게 됩니다. 캐시란 웹사이트에 더 빠른 로딩을 위해 사이트의 데이터를 임시 저장하는 기능입니다. 웹사이트 운영자 입장에서 봤을 때 크게 서버 캐싱과 클라이언트 캐싱으로 나뉩니다. 이 글에서는 캐싱 유형과 웹 캐시 종류에 대해 알아 보겠습니다.

1. 서버 측 캐싱 유형

서버 캐싱는 웹 파일과 데이터를 서버측에서 임시로 저장해서 서버 부하와 대기 시간을 단축 시킵니다. 서버 캐싱은 보통 웹사이트의 적정인 콘텐츠와 단기적인 데이터 위주의 사용에 적절하게 사용되어지고 있습니다.

※ 작동 방식
방문자가 웹사이트에 방문하면 웹사이트는 서버에서 데이터 검색 후 웹페이지가 캐시로 생성한 후 방문자에게 전송됩니다. 웹페이지 복사본이 생성된 후 다른 방문자가 사이트를 방문하면 이미 저장된 캐시가 웹페이지의 사본을 방문자에게 전달해서 웹사이트 로딩 속도가 빨라집니다.

2. 클라이언트 캐싱 유형

클라이언트 캐싱은 브라우저 캐싱이라고도 합니다. 클라이언트 캐싱이 더 폭 넓은 의미로 사용되고 있습니다.

브라우저 캐시(Illustration-of-how-client-side-caching-works)

클라이언트 캐싱은 사용자가 웹페이지에 접속하면 웹사이트의 복사본이 브라우저의 캐시에 저장됩니다. 이후 사용자가 웹페이지에 접속할 때 마다 서버 요청이 아닌 브라우저에 저장된 캐시가 전송됩니다. 클라이언트 캐시는 동적인 데이터에 유리합니다.

3. 웹 캐시 분류 및 이해

웹 캐시란 웹사이트의 로딩 속도를 빠르게 하기 위한 HTML, 이미지, CSS, 자바스크립트 등의 파일을 저장하는 기술입니다.

웹 캐시(Web Cache)

서버 캐싱과 서버 캐시는 다른 개념으로 생각해야 합니다. 서버 캐싱(Server Caching)은 캐시 방식으로 보아야 하며, 서버 캐시는 서버 캐싱의 범주 중 하나에 속하는 것이 맞습니다.

웹 캐시 분류표입니다. 모두 서버 캐싱 유형입니다.

캐시 분류캐싱 유형주요 저장 파일다른 이름
사이트 캐시Server웹페이지, 이미지, 텍스트 저장
서버 캐시Server페이지 전체 HTML 저장
(콘텐츠, 코드, 쿼리 & 유사한데이터)
페이지 캐시
HTTP 캐시
브라우저 캐시ClientHTML 페이지, CSS 스타일시트,
JavaScript 스크립트, 이미지
프록시 캐시Server CSS 스타일시트,
JavaScript 스크립트, 이미지
이하 CDN 캐시

3.1 사이트 캐시(HTTP 캐시)란?

HTTP 캐시 or 페이지 캐시라고 하는 사이트 캐시는 신규 접속보다 빠르게 정적인 웹 콘텐츠를 전송합니다. 모든 데이터는 서버의 하드디스크 or 메모리(RAM)에 저장됩니다. 웹사이트 운영자는 사이트 캐시가 머무는 시간을 설정할 수 있습니다.

물리적으로 CPU 내부 캐시 메모리 칩에 저장됩니다.

디스크 캐시는 디스크에 있는 정보의 복사본을 포함하는 RAM 메모리입니다.

3.2 서버 캐시란?

서버 캐시는 웹사이트 운영자가 제어할 수 없고 서버(Apache, IIS, NginxLiteSpeed 등)에서 완전히 관리되는 웹 캐싱입니다. 클라이언트가 웹 페이지를 방문할 때 서버는 캐시 스캔 후 저장된 콘텐츠를 전송합니다. 서버 캐시는 크게 Object cache와 Opcode cache 캐시로 분류합니다. Object cache는 데이터베이스 쿼리를 저장하여 다음에 데이터가 필요할 때 데이터베이스를 쿼리할 필요 없이 캐시에서 전달되도록 합니다. Opcode cache는 빠른 실행을 위해 미리 컴파일 된 PHP 코드를 저장합니다.

ⓐ Memcached: Memcached는 서버의 메모리 객체를 캐싱합니다. RAM에서 오브젝트를 캐시하여 데이터베이스와 API에서 읽을 횟수를 줄여 줍니다.
(memcache는 memcached 에 직접 접속하는 PHP 모듈이며, memcached 는 libMemcached 를 통해 memcached에 접속하는 접속하는 모듈이란 차이가 있습니다.)

ⓑ Redis: 작고 빠르면서도 많은 기능을 제공하는 Redis는 Memcached 대용으로도 사용되거나 서버에 동시에 설치되어 있기도 합니다.

Zend OPcache : 데이터 베이스를 가속화하기 위한 memcached가 있다면, PHP 코드를 가속화하는데 대표적인 캐시는 Zend OPcache입니다. Opcode cache는 Object cache와 완전 다른 독립적인 기능을 가지고 있습니다. 보통 많은 리눅스 서버에서는 각각 하나 씩 사용하고 있습니다.

APC : 개발이 중단된 무료 Opcode cache입니다. opcode 캐시 기능이 제외되고 데이터 스토어 기능만 지원하는 APCu로 대체되었습니다.

ⓒ Xcache : 대체로 Zend OPcache 캐시보다 성능 면에서 떨어진다는 평으로 OPcache를 더 많이 사용합니다.

3.3 브라우저 캐시란?

브라우저 캐시는 사용자가 탐색한 특정 웹 페이지의 캐시 버전이 저장됩니다. 주로 HTML 페이지, CSS, 자바스크립트, 이미지 등의 파일이 주로 저장됩니다. 보통 제한된 시간 동안 캐시를 저장하고 자동으로 캐시를 삭제하는 방식이 많이 적용되어 있습니다.

3.4 프록시 캐시란?

프록시 캐시는 프록시 서버(proxy server)에 콘텐츠를 저장해서 웹 서비스가 해당 리소스를 더 많은 사용사와 공유할 수 있게 합니다. 원본(Origin) 서버와 협력하며 파일, 이미지, 웹페이지와 같은 웹사이트 데이터를 캐시합니다.

프록시 서버(Proxy Server)
프록시 서버(proxy server)는 클라이언트에서 서버로 접속할 때 다이렉트 접속이 아닌 중간에 대신 전달을 해 주는 서버입니다. 프록시 서버는 크게 CDN과 VPN에 많이 활용되고 있습니다.

CDN(Content Delivery Network) 캐시가 프록시 캐시 유형인 것이지요. 프록시 캐시의 일종인 CDN 캐시는 대체로 정적이며, CDN 서비스에 따라 서버 자체에서 동적인 서비스(캐시 포함)를 하는 업체는 많이 있으며 지속적인 발전을 추구하고 있습니다.

4. 캐싱 유형과 웹 캐시 결론

대체로 이미지와 CSS 및 자바 스크립트와 같은 파일들이 주로 캐시되며 캐시할 수 있지만 대체로 동적 콘텐츠는 캐시가 되지 않습니다. 대표적으로 많이 인식되고 있는 웹 캐시(Web Cache) 종류에 대해 알아 봤습니다.

콘텐츠 내 광고 및 제휴 링크가 포함될 수 있으며, 파트너스 활동으로 일정액의 수수료를 받을 수 있습니다.

Similar Posts