🧠 캐싱(Caching)이란?
자주 사용하는 데이터를 임시로 저장해 두고,
다음 요청 시 서버나 DB에 다시 접근하지 않고
빠르게 응답할 수 있도록 하는 기술입니다.
속도 향상과 서버 부하 감소를 시켜야될 때 아주 유용한 기술이 캐싱입니다.
🔄 캐시 처리의 핵심 목적
| 목적 | 설명 |
| ⚡ 응답 속도 향상 | 매번 새로 계산하거나 DB에서 불러오지 않음 |
| 💻 서버 부하 감소 | 동적 처리 로직을 반복하지 않아 리소스 절약 |
| 🌐 대역폭 절약 | 클라이언트 또는 중간 서버에 데이터가 있으면 다시 보내지 않음 |
📍 캐싱이 발생할 수 있는 위치
| 위치 | 설명 |
| 1️⃣ 브라우저 캐시 (Client-side) | HTML, CSS, JS, 이미지 등을 브라우저에 저장 |
| 2️⃣ CDN (Content Delivery Network) | 전 세계 엣지 서버에 정적 리소스를 저장해 빠르게 제공 |
| 3️⃣ 웹 서버 캐시 | 웹 서버 자체에 페이지, 응답 데이터 등을 저장 |
| 4️⃣ 애플리케이션 서버 캐시 | 메모리(DB 대신) 또는 파일로 처리 결과 저장 (예: Redis) |
| 5️⃣ DB 캐시 | 자주 사용하는 쿼리 결과를 메모리에 저장 (예: Query Cache) |
📦 캐싱 방식의 종류
🔹 1. 정적 캐싱 (Static Caching)
- HTML, 이미지, CSS, JS 파일을 캐시
- 주로 웹 서버나 CDN, 브라우저가 수행
- ✅ 캐싱 예시:→ 1일 동안 캐시 유지
# arduinoCache-Control: max-age=86400 # 1일 동안 캐시 유지
🔹 2. 동적 캐싱 (Dynamic Caching)
- 사용자 요청에 따라 생성된 동적 페이지나 데이터를 일정 시간 저장
- 예: 뉴스 메인 페이지, 인기 게시글 목록
🔹 3. 메모리 캐싱 (In-memory Caching)
- 서버의 RAM에 데이터를 올려 빠르게 접근
- 대표적인 도구: Redis, Memcached
🔹 4. 프록시 캐싱
- **중간 서버(Reverse Proxy)**가 요청을 받아, 캐시가 있다면 직접 응답 (예: Nginx, Varnish)
- 실제 웹 서버를 거치지 않으므로 속도 향상
📑 캐시 정책 (Cache Policy)
| 정책 | 설명 |
| No-cache | 항상 서버에 확인 후 저장 가능 |
| No-store | 저장 절대 금지 (보안 정보 등) |
| max-age=초 | 지정한 시간 동안 캐시 유효 |
| ETag/Last-Modified | 변경 여부를 비교해 새로 받을지 결정 |
🔄 동작 예시
- 사용자가 웹 페이지 요청
- 웹 서버는 캐시를 먼저 확인
- 캐시 있음 → 바로 응답
- 캐시 없음 → 서버가 처리 → 응답 저장 후 반환
💡 요약
| 캐싱 장점 | 캐싱 단점 |
| 빠른 속도 | 오래된 데이터 응답 가능성 |
| 서버 부하 감소 | 캐시 무효화 관리 필요 |
| 대역폭 절약 | 실시간성 필요한 시스템에는 부적합 |
'Programming > Web' 카테고리의 다른 글
| Oracle Cloud Infrastructure 가상 서버(Compute Instance) 생성 (0) | 2026.03.26 |
|---|---|
| 캐싱 전략(Caching Strategy) 종류 (0) | 2025.05.12 |
| 정적 처리 VS 동적 처리 (0) | 2025.05.12 |
| 웹 서버와 애플리케이션 서버를 분리하는 이유 (0) | 2025.05.12 |
| Web Service 구성 예시 (0) | 2025.05.12 |
