
Lighthouse 검사 결과

Lighthouse 검사 결과
결과를 보면 점수가 아주 높게 나옴. 그런데 한 가지 눈에 띄는 부분은 Diagnostics 섹션의 ‘Serve static assets with an efficient cache policy’ 라는 항목임
이 항목은 네트워크를 통해 다운로드하는 리소스에 캐시를 적용하라는 의미임. 항목을 클릭해서 펼쳐 보면 거의 모든 리소스에 캐시가 적용되어 있지 않다고 나옴

Lighthouse 검사 결과 중 캐시 관련 항목
실제로 Network 패널에서 위 리소스 중 하나를 확인해 보면 응답 헤더에 캐시에 대한 설정인 Cache-Control 이라는 헤더가 없는 것을 알 수 있음. 즉, npm run start로 실행한 서버에는 캐시 설정이 제대로 되어 있지 않은 것임

번들 파일의 응답 헤더
웹에서 사용하는 캐시는 크게 두 가지로 구분할 수 있음
어떤 캐시를 사용할지는 직접 제어할 수 없음. 브라우저가 사용 빈도나 파일 크기에 따라 특정 알고리즘에 의해 알아서 처리함
구글 홈페이지에서 개발자 도구를 열어 Network 패널을 확인해 보면 Size 항목에 memory cache 또는 disk cache라고 표시된 것을 볼 수 있음. 이 리소스들이 브라우저에 캐시된 리소스임

크롬의 Network 패널의 캐시 정보
<aside> 💡 캐시를 확인할 때는 Network 패널의 Disable cache 설정을 꺼야 함
</aside>

크롬의 네트워크 리소스에서 볼 수 있는 Cache-Control 지시문
<aside> 💡 구글에서 단순 새로고침을 한 후 확인했다면 memory cache가 많을 것임. 왜냐하면 이미 구글의 리소스가 메모리에 캐시되었기 때문임. 브라우저를 완전히 종료한 후 구글에 접속하는 첫 네트워크 리소스를 확인하면 disk cache가 많을 것임. 브라우저가 완전히 종료되면 메모리에 남아있는 내용은 제거하고 다음 접속 때는 파일 형태로 남아 있는 캐시를 활용하기 때문임
</aside>