캐시는 cash(현금)이 아니라 cache라고 쓴다. 캐시에는 ‘숨기는 장소’라는 의미가 있다. 컴퓨터 세계에서 캐시는 사용 빈도가 높은 데이터를 고속으로 액세스할 수 있는 위치에 두는 것을 의미한다. CPU의 1차 캐시나 2차 캐시, 저장소 캐시, OS 페이지 캐시, 데이터베이스 버퍼 캐시 등 광범위하게 캐시 기술이 사용되고 있다. 그러면 캐시에 대해 좀 더 자세히 살펴보도록 하자.
캐시는 임시 저장소를 의미한다. ‘바로 사용할 테니까 일단 여기에 두자’와 같은 상황은 일상 생활에서도 많이 있을 것이다. 예를 들면, 티슈가 그렇다. 하지만 아무 데나 막 놓기 시작하면 정리가 힘들어진다. 따라서 가까운 곳에는 자주 사용하는 것만 둘 것이다. 또한, 모두가 티슈를 자기 앞에 둔다면 다른 사람은 바로 사용할 수 없게 된다.
캐시에는 다음과 같은 특징이 있다.
캐시는 다양한 곳에서 이용되고 있지만, 몇 가지 구현 예를 들도록 하자.
브라우저 캐시는 웹 브라우저가 접속한 페이지를 캐시하는 것이다. 이를 통해 웹 서버 접속을 줄이고 브라우저 표시를 고속화할 수 있다.
웹 서버 자체 부하를 줄이는 다른 한 가지 방법으로 웹 서버와 클라이언트 사이에 캐시 서버를 배치하는 방법이 있다. 요즘에는 캐시 서버를 서버 앞에 두는 대신에 CDN(Content Delivery Network)이라는 웹 서버가 아닌 다른 네트워크에 웹 콘텐츠 캐시를 배치하는 구조를 이용하기도 한다. 상용 서비스로는 아카마이(Akama) 등이 유명하다.
어떤 원인으로 인해 지금 하고 있는 일을 중단하고 급히 다른 일을 하는 것을 끼어들기라고 한다. 끼어들기라고 하면 ‘방해한다’는 뉘앙스가 들 수 있지만, 급한 일을 먼저 하도록 CPU에 알리는 중요한 역할을 한다.