본문 바로가기

Sparta

[Sparta] 08. CDN정리 (주말도 스파르타!)

CDN


CDN(Content Delivery Network)은 말 그대로 "컨텐츠 전송 네트워크"를 뜻한다. 서버개발을 하다보면 항상 만나지만 역시 모른척했던 녀석... 특히 HTML을 코딩할 때, jQuery나 Bootstrap등을 임포트할 때 많이 봤다. 이제 이녀석을 정리해보자!


CDN에서 delivery는 웹페이지나 이미지, 동영상 등의 컨텐츠를 서버에서 클라이언트로 전송하는 것을 말한다. 이러한 정보의 이동은 CDN없이도 이미 잘 동작하고 있지만, 네트워크의 사용량은 점점 더 많아지고 있고, 넷플릭스나 유튜브 등의 회사들은 끊임없이 소비할 컨텐츠를 쏟아내고 있다. 이때 두가지 문제점이 생기는데, 느린 응답속도와 다운로딩 타임이 그것이다.


서버도 하나의 컴퓨터인데, 누군가 내가 만든 웹페이지에 접속한다는 것은 내 서버 컴퓨터에 클라이언트의 컴퓨터로부터 요청이 들어오고 해당 요청에 따라 서버가 정보를 보내주는 과정이라 할 수 있다.

이게 내 서버면 뭐... 별로... 사람이 들어오지도 않겠지만... 앞서 언급했듯, 유튜브나 넷플릭스의 경우 얘기가 달라진다.


일단은, 물리적 거리가 문제가 된다. 서버가 한국에 있다면, 한국인이야 쉽게 접근 할 수 있겠지만, 미국이나 유럽에서는 굉장히 느릴 것이다.


두번때 문제는, 서버입장에서 수많은 요청을 감당해야 한다는 것이다. 서버도 앞서 언급했듯 컴퓨터이고 요청이 과다하게 들어오면 과부하가 걸리게 되고 제 역할을 못할 가능성이 높아진다.


이러한 문제점을 해결하기 위해 이런 요청들을 여러곳에 분산시키는 기술을 도입하는데, 이것의 대표적인 기술이 CDN이다.



다시말해, 사용자의 요청을 처리하는 곳을 여러둔데로 나눠서, 컨텐츠 전달에만 집중하여 서비스를 제공하는 것이 CDN이다. 클라이언트가 콘텐츠를 전송받을 때 세계 각지의 CDN 서버 중에, 자신과 가장 가까운 네트워크 경로를 선택할 수 있다.


이렇게 되면 위의 두가지 단점을 모두 보완할 수 있다. 서버입장에선, 트래픽이 하나의 서버에 몰려 과부하가 발생하는 것을 방지할 수 있으며, 사용자 입장에선 자신과 가장 가까운 서버에서 컨텐츠를 전송받기 때문에 서비스의 속도를 향상시킬 수 있다.


이런 CDN업체로 대표적인 곳이, Cloudflare나 Akamai, AWS의 CloudFront, 그리고 Azure가 있다.


HTML을 코딩할 때, jQuery 라이브러리는 용량이 얼마 되지 않기때문에 본인서버에 올려놓고 사용해도 트래픽에 큰 영향은 없겠지만, 만약 접속자 수가 많아진다면 여러가지 문제를 발생시킬 수 있다. 따라서 일반적으로 다음과 같이, JQuery.com에서 직접 제공하는 CDN이나 Google.com에서 제공하는 CDN을 내 html, js 파일에 임포트하여 사용한다.



얄코님 유튜브

'Sparta' 카테고리의 다른 글

[Sparta] 10-1.DevOps  (0) 2021.09.28
[Sparta] 09.REST API  (0) 2021.09.27
[Sparta] 07. 로그인과 JWT.md  (0) 2021.09.24
[Sparta] 06. 연휴끝..!.md  (0) 2021.09.23
[Spatra] 05.백신접종 & 타임어택 테스트 .md  (0) 2021.09.17