네트워크 캐싱은 미리 리소스를 캐싱 서버에 올려둠으로써 원본 데이터가 존재하는 서버까지 통신하는 네트워크 부하를 줄여준다. 캐싱 기능은 네트워크뿐만 아니라 애플리케이션 내에서도 사용되는 유용한 개념으로 응답 속도
, 사용자 경험 개선
, 네트워크 대역폭 절약
등의 이점을 가진다.
다음은 캐싱되어 있는 데이터
와 캐싱되어 있지 않은 데이터
를 각각 조회할 때 걸리는 조회 시간을 간단하게 비교하는 예제이다.
코드를 실행해보고 직접 체감해보자
(캐싱된 데이터는 1ms의 조회 시간을 가지고 캐싱되지 않은 데이터는 10ms의 조회 시간을 가진다 가정하자)
AWS를 이용해 애플리케이션을 배포하려한다. 배포하는 애플리케이션은 EC2
로 배포, 정적 컨텐츠의 서빙이 위주이기 때문에 S3/CloudFront
를 이용해 CDN을 구축했고, DNS를 사용하기 위해 Route53
을 이용했다. 브라우저에서 해당 웹 사이트에 접속했을 때, 어떤 과정이 일어날까? DNS와 CDN 동작을 위주로 서술하라. (페이지 요청시 필요한 이미지 등의 정적 리소스는 모두 S3를 통해 받고, 별도의 캐싱 서버는 존재하지 않는다)