Programming/Server

[Server] 캐시의 정의와 캐시 유형

_채채_ 2025. 10. 22. 18:38

캐시(Cache)

캐시란 자주 접근하는 데이터를 빠르게 가져오기 위해 임시로 저장해두는 저장소라고 할 수 있다.

 

예를 들어 온라인 쇼핑몰의 메인 페이지에서 보이는 데이터(인기 상품, 신상품 등)는 사용자 수가 많아질 수록 조회 횟수가 늘어나는데 이때 한 번 불러온 데이터를 일정 기간 캐시에 저장해두고, 다음의 동일한 요청부터 DB에서 불러오지 않고 캐시에서 바로 가져와서 빠르게 응답하도록 하는 상황을 생각해볼 수 있다.

 


캐시의 필요성

1. 자주 접근하는 데이터를 빠르게 조회

2. 원본 데이터 소스의 부하를 감소 시킴

- 캐시가 없는 요처으이 경우, 데이터베이스로 직접 전달되어 자원을 소모시키게 되는데 캐시를 사용할 경우 동일 데이터를 여러 번 요청해도 데이터베이스에서는 한 번만 조회하면 되므로 DB 연결 수가 급격히 증가하는 것을 방지할 수 있다.

3. 네트워크 지연시간을 최소화함

- 사용자와 가까운 위치(브라우저나 서버 메모리 등)에 데이터를 저장하여 지연을 최소화한다.


캐시의 유형

1️⃣ CUP캐시

- CPU 내부에 위치하고 메모리 접근 속도를 개선할 목적으로 사용한다.

- L1, L2, L3 캐시가 해당된다.

- 매우빠르고 용량이 작으며 개발자가 직접 제어하지 않는다는 특징이 있다.

 

2️⃣ 웹 캐시

- 브라우저, 프록시, CDN에 위치하며 서버에서 직접 데이터베이스에 접근할 필요하 없어져 웹사이트 로딩 속도를 높여준다.

- 웹 클라이언트 캐시, 웹 서버 캐시가 해당된다.

- 네트워크 비용을 감소시키며 프론트, 백엔드 모두에게 중요한 부분이다.

 

3️⃣ CDN 캐시

- 콘텐츠 자체(이미지, JS, CSS, 영상 등)를 사용자와 가까운 서버에 저장해두는 캐시로 지리적으로 분산된 프록시 서버 네트워크라고 할 수 있다.

- 사용자가 웹 페이지를 요청하면 가장 가까운 서버가 응답을 시도하는데 이때 캐시에 있으면 바로 응답, 없으면 원본 서버에서 가져와서 전달한다. 전달함과 동시에 CDN에 저장한다.

 

4️⃣ DNS 캐시

- 도메인 이름을 IP 주소로 변환하여  결과를 저장해두는 캐시

- 예를 들어 브라우저가 exampl.com을 요청할 때 DNS 캐시 유무를 브라우저 -> 운영체제 -> DNS 서버 순으로 확인하고 캐시가 없는 경우 DNS 서버를 통해 요청이 들어가며 이 응답은 TTL동안 각 단계에서 캐싱한다.


📄 참고 문서

https://www.upguard.com/blog/cache

 

What is a Cache? | UpGuard

A cache is a temporary data storage location that stores copies of frequently accessed data or files. Learn more about its types and uses.

www.upguard.com

 

 

'Programming > Server' 카테고리의 다른 글

[Server] 로컬 캐시와 분산 캐시  (0) 2025.10.21