캐시

캐시란?

캐시는 cash(현금)이 아니라 cache라고 쓴다. 캐시에는 ‘숨기는 장소’라는 의미가 있다. 컴퓨터 세계에서 캐시는 사용 빈도가 높은 데이터를 고속으로 액세스할 수 있는 위치에 두는 것을 의미한다. CPU의 1차 캐시나 2차 캐시, 저장소 캐시, OS 페이지 캐시, 데이터베이스 버퍼 캐시 등 광범위하게 캐시 기술이 사용되고 있다. 그러면 캐시에 대해 좀 더 자세히 살펴보도록 하자.

캐시는 임시 저장소를 의미한다. ‘바로 사용할 테니까 일단 여기에 두자’와 같은 상황은 일상 생활에서도 많이 있을 것이다. 예를 들면, 티슈가 그렇다. 하지만 아무 데나 막 놓기 시작하면 정리가 힘들어진다. 따라서 가까운 곳에는 자주 사용하는 것만 둘 것이다. 또한, 모두가 티슈를 자기 앞에 둔다면 다른 사람은 바로 사용할 수 없게 된다.

캐시에는 다음과 같은 특징이 있다.

어디에 사용되나?

캐시는 다양한 곳에서 이용되고 있지만, 몇 가지 구현 예를 들도록 하자.

브라우저 캐시는 웹 브라우저가 접속한 페이지를 캐시하는 것이다. 이를 통해 웹 서버 접속을 줄이고 브라우저 표시를 고속화할 수 있다.

웹 서버 자체 부하를 줄이는 다른 한 가지 방법으로 웹 서버와 클라이언트 사이에 캐시 서버를 배치하는 방법이 있다. 요즘에는 캐시 서버를 서버 앞에 두는 대신에 CDN(Content Delivery Network)이라는 웹 서버가 아닌 다른 네트워크에 웹 콘텐츠 캐시를 배치하는 구조를 이용하기도 한다. 상용 서비스로는 아카마이(Akama) 등이 유명하다.

끼어들기

끼어들기란?

어떤 원인으로 인해 지금 하고 있는 일을 중단하고 급히 다른 일을 하는 것을 끼어들기라고 한다. 끼어들기라고 하면 ‘방해한다’는 뉘앙스가 들 수 있지만, 급한 일을 먼저 하도록 CPU에 알리는 중요한 역할을 한다.