캐싱(Caching)은 컴퓨터 시스템에서 데이터를 임시로 저장해 두고, 나중에 재사용할 수 있도록 하는 기술이다. 일반적으로 캐싱은 데이터를 조속히 읽어들일 수 있는 메모리 공간에 저장하여, 데이터 요청 시 물리적 저장소(예: 하드 드라이브)에 비해 빠르게 응답할 수 있도록 한다.
캐시는 브라우저, 데이터베이스, 웹 서버, 운영체제 등 다양한 환경에서 사용되며, 각기 다른 종류의 캐시가 존재한다. 예를 들어 웹 브라우저는 사용자가 자주 방문하는 웹 페이지의 HTML, CSS 파일, 이미지 등을 캐시하여, 다음 번에 해당 페이지를 요청할 때 서버에 반복적으로 요청하지 않고 저장된 데이터를 빠르게 불러올 수 있다.
데이터베이스에서의 캐시는 쿼리 결과를 메모리에 저장하여, 동일한 쿼리가 반복될 경우 디스크 접근 없이 빠르게 결과를 반환할 수 있도록 한다. 또한, 리버스 프록시 서버와 같은 웹 캐싱 시스템은 클라이언트의 요청을 받아 서버로부터 응답을 받은 후 이를 저장하여, 이후 동일한 요청이 있을 때 저장된 데이터를 제공함으로써 서버의 부하를 줄이고 응답 시간을 단축시킨다.
캐싱의 주요 목적은 성능 향상, 대역폭 절약, 서버 부하 감소, 사용자 경험 개선 등이며, 적절한 캐시 전략을 통해 시스템의 효율성을 극대화할 수 있다. 그러나 캐시가 불완전하거나 오래된 경우 사용자는 잘못된 데이터를 받을 수 있으므로, 캐시 무효화(Cache Invalidation) 메커니즘이 중요하다. 이는 원본 데이터가 업데이트될 때 캐시된 데이터를 적절히 갱신하거나 제거하는 과정을 포함한다.
종합적으로 캐싱은 현대 컴퓨터 시스템의 성능과 효율성을 높이는 데 필수적인 기술로 자리 잡고 있다.