Day 40 · 1/5
🌿 중급 백엔드

API 응답 캐싱이란?

쉽게 이해하기

음식점에서 자주 주문하는 메뉴를 미리 만들어두는 것과 같아요. 주문이 들어올 때마다 처음부터 조리하지 않고, 미리 준비해둔 음식을 바로 내주면 훨씬 빠르죠. API 캐싱도 마찬가지로 자주 요청되는 데이터를 미리 저장해두고 빠르게 응답합니다.

핵심 정리

자주 요청되는 API 응답을 미리 저장해두고 재사용하는 방법이에요.

자세히 알아보기

API 응답 캐싱은 서버가 동일한 요청에 대해 매번 계산하거나 데이터베이스를 조회하지 않고, 이전 응답을 저장해두었다가 재사용하는 기술이에요. 예를 들어 날씨 정보를 제공하는 API가 있다면, 같은 지역의 날씨를 1분마다 수백 번 요청받을 수 있어요. 매번 기상청 서버에 새로 물어보는 대신, 5분간 결과를 캐시에 저장해두고 그 사이의 요청엔 저장된 데이터를 바로 보내주는 거죠. 캐싱은 서버 부하를 크게 줄여줘요. 인스타그램 같은 앱에서 인기 게시물을 보여주는 API가 있다면, 수백만 명이 동시에 접속해도 실제로는 캐시된 데이터를 보내주기 때문에 서버는 한 번만 계산하면 됩니다. 또한 사용자 입장에서도 응답 속도가 몇 초에서 수십 밀리초로 빨라지는 걸 체감할 수 있어요. 캐싱에는 여러 레벨이 있어요. 브라우저 캐시는 사용자 컴퓨터에 저장되고, CDN 캐시는 전세계 서버에 분산 저장되며, 서버 캐시는 백엔드 서버 메모리에 저장돼요. HTTP 헤더의 'Cache-Control'로 캐시 유효 시간을 설정할 수 있고, 'ETag'로 데이터가 변경됐는지 확인할 수도 있죠. 다만 실시간으로 변하는 데이터는 캐싱하면 안 돼요. 주식 가격이나 채팅 메시지처럼 즉시 반영돼야 하는 정보는 캐시를 사용하면 오래된 데이터를 보여주게 되니까요. 반면 상품 목록, 블로그 글, 공지사항처럼 자주 바뀌지 않는 데이터는 캐싱의 최고 대상입니다.