캐시: 정의와 캐싱이 사용되는 모든 분야

캐시가 쓰이는 분야를 하드웨어부터 웹까지 위키백과·MDN·워드프레스 공식 문서의 분류에 맞춰 하나의 트리로 정리했습니다. CPU, 운영체제, 데이터베이스, 브라우저가 모두 같은 이름을 쓰므로, 비운다는 말도 어느 층인지에 따라 지워지는 대상이 달라집니다.
캐시는 자주 사용하거나 곧 필요할 데이터를 원본보다 빠른 저장소에 임시로 저장해 두고, 같은 요청이 오면 원본 대신 그 사본으로 응답합니다.
영어 위키백과의 Cache (computing) 문서는 캐시를 CPU 캐시·GPU 캐시 같은 하드웨어 캐시와 디스크·웹·DNS·데이터베이스 캐시 같은 소프트웨어 캐시로 나눕니다. 아래 트리는 이 분류를 캐시가 놓이는 자리 기준으로 묶었으며, 웹 캐시는 MDN의 private cache와 shared cache 분류를 따랐습니다.
브라우저·CDN·서버 내부 캐시가 워드프레스 요청 하나를 처리하는 순서는 웹사이트 캐시 & 서버 내부 캐시: 워드프레스 캐시가 작동하는 방식 글에서 시뮬레이터로 확인할 수 있습니다.
Ⅰ. 사용자 단말 장치
개인 컴퓨터와 스마트폰 같은 사용자 단말 장치의 캐시는 운영체제(OS) 캐시, 브라우저 캐시, 모바일 앱 캐시로 나눌 수 있습니다.
디스크 캐시(페이지 캐시)는 디스크에서 읽은 데이터를 메모리에 남겨 두며 운영체제 커널이 관리합니다. DNS 캐시는 최근 조회한 도메인과 IP 주소를 저장합니다.
같은 리소스를 다시 요청할 때 서버까지 가지 않거나 바뀌었는지만 확인합니다. Service Worker(Cache API)를 쓰면 오프라인에서도 저장된 리소스로 웹앱을 열 수 있습니다.
대용량 콘텐츠를 다루는 앱은 받은 데이터와 최근 본 목록을 기기에 저장해 같은 데이터를 다시 받지 않습니다.
Ⅱ. 서버 및 애플리케이션 캐시
서버 측 캐시는 요청이 서버에 도착한 뒤 페이지를 만드는 과정에 붙는 캐시입니다. 워드프레스 공식 문서는 이를 캐싱 플러그인(페이지 캐시), 오브젝트 캐시, 서버 캐시(OPcache 같은 opcode 캐시)로 나눠 설명합니다.
같은 페이지 요청에는 PHP를 실행하지 않고 저장된 사본을 보냅니다. 캐시 플러그인과 웹 서버 캐시가 있습니다.
같은 파일을 다시 실행할 때 컴파일을 생략합니다. PHP 5.5부터 기본으로 포함되어 있습니다.
자주 사용되는 데이터를 메모리 저장소에 저장해 같은 쿼리를 반복하지 않습니다.
웹 프레임워크가 렌더링된 템플릿과 쿼리 결과를 자체 캐시에 저장합니다.
Ⅲ. 콘텐츠 전송 / 네트워크 인프라 캐시
네트워크 인프라의 캐시는 방문자와 원본 서버 사이에서 사본으로 응답해, 물리적 거리와 원본 서버의 부하를 줄입니다. HTTP 캐시 표준에서는 여러 방문자가 함께 쓰는 shared cache에 해당합니다.
전 세계에 분산된 서버 중 방문자와 가장 가까운 서버에서 전달합니다. 구조와 이점은 CDN이란? CDN 사용 이유와 이점 5가지 글에 있습니다.
정방향 프록시는 기업 네트워크처럼 클라이언트 쪽 앞단에서, 역방향 프록시는 서버 앞단에서 응답을 저장합니다.
네트워크 장비는 ARP 캐시에, 통신사·공용 DNS 리졸버는 조회 결과를 레코드의 TTL 동안 저장합니다.
Ⅳ. 데이터베이스 및 스토리지 시스템 캐시
데이터베이스와 저장장치는 디스크 입출력이 느린 만큼, 자주 읽는 데이터를 메모리에 올려 두고 사용합니다.
자주 읽는 데이터와 인덱스를 메모리에 유지합니다. MySQL 쿼리 캐시는 8.0에서 제거됐고, MariaDB에는 남아 있지만 기본으로 꺼져 있습니다.
하드디스크 컨트롤러에 내장된 메모리와 SSD 안의 DRAM이 데이터를 임시로 저장해 입출력 지연을 줄입니다.
Ⅴ. 하드웨어 레벨 캐시
하드웨어 캐시는 CPU와 GPU 안에 들어 있는 고속 메모리로, 메인 메모리(RAM)보다 빠르게 데이터를 처리합니다.
L1은 코어마다 따로 있고 명령어 캐시와 데이터 캐시로 나뉘며, L3는 코어 전체가 공유합니다. 메모리 관리 장치(MMU)는 가상 주소를 물리 주소로 바꾼 결과를 TLB에 저장합니다.
게임, 3D 그래픽, 머신러닝 연산에서 GPU의 처리 효율을 높입니다.
Ⅵ. 클라우드 / 가상화 환경 캐시
클라우드와 가상화 환경에서는 컨테이너 이미지, 함수 실행 환경, 빌드 결과물을 다시 사용해 배포와 실행 시간을 줄입니다.
Docker 이미지는 여러 레이어로 구성되며, 변경되지 않은 레이어는 다시 빌드하거나 내려받지 않습니다.
호출이 끝난 실행 환경을 일정 시간 유지했다가 다음 호출에 다시 사용해, 초기화 시간(Cold Start)을 줄입니다(Warm Start).
반복 빌드 시간을 줄입니다.
🔢 FAQ & 추천 콘텐츠
ℹ️ 제휴 안내
본 사이트의 콘텐츠에는 제휴 링크가 포함되어 있습니다. 방문자가 이 링크를 통해 상품 또는 서비스를 구매하면 본 사이트는 판매처로부터 수수료를 지급받습니다. 이 과정에서 구매자가 지불하는 금액(이벤트 할인 시 금액이 내려갑니다↓)은 오르지 않습니다. 게시된 가격·할인·재고 정보는 작성 시점 기준이며 실제와 다를 수 있으므로, 구매 전 판매처에서 최종 확인하시기 바랍니다. 상품 선정과 평가는 자체 기준에 따라 작성되며, 수수료 지급 여부가 소개 순서나 평가 내용에 영향을 주지 않습니다.








