웹 애플리케이션에서 Content Delivery Network(CDN)를 사용하여 성능을 최적화하는 방법을 설명하고, CDN이 웹 페이지 로딩 시간과 대역폭에 어떤 영향을 미치는지 설명해주세요. CDN을 사용할 때 발생할 수 있는 잠재적인 문제와 해결하기 위한 방안을 설명해주세요.
: 콘텐츠 전송 네트워크
지리적 제약 없이 전 세계 사용자에게 빠르고 안전하게 콘텐츠를 전송할 수 있는 기술
서버와 사용자 사이의 물리적인 거리를 줄여주기 때문에 콘텐츠를 받아오는 시간을 최소화시킬 수 있다.
지역마다 캐시 서버(PoP, Points of presenece)를 분산 배치하고 해당 서버에 근접한 사용자의 요청에 원본 서버가 아닌 캐시 서버(엣지 서버)에 있는 켄텐츠를 전달
주로 이미지나 영상과 같이 대용량 파일을 안정적으로 활용하기 위해서 사용
cdn이란 콘텐츠 전송 네트워크로, 전송시간이 오래 걸리거나 대용량의 데이터를 캐시 서버에 분산해놓고 근접한 사용자한테 전송하기 때문에 효율적으로 사용할 수 있습니다.
웹 애플리케이션에서는 image, js, video와 같은 파일들을 cdn을 통해 배포하면 성능을 최적화할 수 있습니다.
가장 가까운 캐시 서버로부터 콘텐츠를 받아오기 때문에 로딩 속도는 훨씬 빨라집니다. 또한, 원본 서버가 처리해야할 트랙픽을 CDN 캐시 서버로 분산되기 때문에 트래픽을 분산시킬 수 있습니다. 동일 지역 사용자들에게는 캐시된 콘텐츠를 재사용하기 때문에 캐싱으로 인한 중복 전송도 감소시킬 수 있습니다.
다만, cdn 서버 장애시 서비스가 중단이 될 수 있고 캐시가 최신 상태가 아니면 사용자는 최신 컨텐츠를 받을 수 없다는 잠재적인 문제가 있습니다. 서버 장애에 대한 대안으로는 다중 cdn으로 구성하거나 백업 시스템을 마련하여 웹서버에서 직접 리소스를 받아오도록 설정합니다. 또한, 적절한 캐시 만료 시간을 설정하거나 파일 버전 관리를 통해 갱신합니다.