캐시 사용을 최대화할 수 있는 3가지 기본 원리는 다음과 같다.
어떤 콘텐츠를 캐시할 수 있는지, 혹은 캐시하면 안 되는지를 알아야 한다.
Web Page Test에서 특정 웹 페이지를 구성하고 있는 콘텐츠들의 종류와 비율을 파악할 수 있다. 이 중에서 캐시가 가능한 친구들은 누구일까?
[쉽게 읽는 IT시스템] 정적 콘텐츠와 동적 콘텐츠 쉽게 요약정리
정적 콘텐츠는 URL 호출 때마다 늘 같은 응답을 주는 콘텐츠다.
이미지, 동영상, CSS, 자바스크립트 등이 포함된다. 웹 페이지 상에서 이들은 움직이거나 페이지를 화려하게 만들어주지만, 호출 때마다 소스 코드가 달라지지는 않는다. 즉, 정적 콘텐츠이다.
동적 콘텐츠는 사용자가 요청할 때마다 서버에 의해 다시 생성되고 응답되는 콘텐츠다.
API나 Ajax를 사용한 요청에 대한 콘텐츠
API나 Ajax를 통한 요청은 사용자의 요청 값에 따라서 서로 다른 결과를 서버에서 보내준다. 인증 정보, 계좌 잔액과 같이 서버에서 작업이 필요한 데이터나 시간에 따라 빨리 변하는 정보들을 이야기한다.
개인화된 콘텐츠
사용자가 사이트에 로그인했을 때 개인화된 웹 페이지들이 만들어진다. 사용자의 정보에 따라 콘텐츠가 달라지므로 동적 콘텐츠라 볼 수 있다. 마이페이지, 나의 장바구니, 유튜브의 추천 영상 페이지 등은 사용자의 정보에 따라 서로 다른 정보들을 보여주어야 하므로, 이들은 동적 컨텐츠라고 볼 수 있다.
이런 동적인 컨텐츠들은 요청 정보에 따라서 서로 다른 결과값을 리턴해주기 때문에 대부분의 경우 캐시되어서는 안 된다. 동한님이 배포 작업을 하실 때에 Nuxt 서버의 경우에는 다른 CSS나 폰트, 이미지와 같은 정적 컨텐츠와 같이 S3에 저장 및 캐싱하지 않고 쿠버네티스에 올리신다고 했는데, Nuxt 서버의 경우 사용자의 요청값에 따라 다른 데이터를 내려주는 서버, 즉 동적 콘텐츠이기 때문에 그렇다.