브라우저 캐시는 단순히 프론트엔드의 영역이 아니라, 실제 서비스의 성능과 트래픽 비용, 심지어 버그 발생 가능성까지 영향을 미치는 아주 중요한 요소이다.
브라우저 캐시란?
브라우저 캐시는 클라이언트(사용자의 웹 브라우저)가 자주 사용하는 데이터를 저장해두고, 다음에 다시 요청할 때 빠르게 보여주기 위한 기술이다.
예 : 어떤 쇼핑몰 사이트에 방문시, 그 사이트의 로고 이미지가 매번 서버에서 오면 느릴것이다. 그래서 브라우저는 이걸 한 번 다운로드한 뒤, 다음부터는 자기 컴퓨터에 저장된걸 보여준다.
브라우저 캐시의 핵심 메커니즘
1. Cache-Control
서버가 클라이언트에게 이 리소스를 어떻게 캐시해야 할지 알려주는 HTTP 헤더이다.
- max-age=3600 -> 1시간 동안 캐시해라
- public -> 누구나 캐시해도 된다
2. ETag / Last-Modified
- 캐시된 파일이 변경됐는지 확인하는 데 사용한다.
- 변경이 없으면 304 Not Modified로 응답해서 데이터를 아예 보내지 않는다.
3. 실무에서 사용 가능한 전략
리소스 타입 | 캐시 전략 |
이미지, JS, CSS | long-term 캐시 + 파일명에 해시 |
HTML 페이지 | no-cache 또는 must-revalidate |
API 응답(GET) | short max-age 또는 no-store |
4. CDN과의 캐시 연계
클라우드플레어, AWS CloudFront 같은 CDN은 브라우저 뿐 아니라 서버 앞단에서 전 세계에 캐시를 제공한다. 이를 통해 TTFB(Time to First Byte)를 극적으로 낮출 수 있다.
서버 -> CDN -> 브라우저 순으로 캐시 계층을 구성하면 성능 최적화에 큰 효과가 있다.
5. 디버깅 방법
브라우저 개발 도구에서 Network 탭을 열고, 리소스를 확인하면 아래 정보들을 볼 수 있다.
- Status : 200 OK vs 304 Not Modified
- Cache-Control 헤더
- ETag / Last-Modified 여부
실제로 문제를 겪을 때 이 도구를 통해 빠르게 원인을 추적할 수 있다.
'Back-End' 카테고리의 다른 글
기능은 됐는데 성능이 안 나오는 코드의 특징 5가지 (0) | 2025.05.09 |
---|---|
ArrayList vs LinkedList -add 시간복잡도와 메모리 사용 차이(Kotlin / Java) (0) | 2025.04.30 |
FastAPI? (0) | 2024.08.12 |