티스토리 뷰
Presenters스터디 시간에 DOM을 발표하며 HTML의 script태그에 대한 이야기를 했다. script태그로 자바스크립트를 import할 때에는 DOM조작을 위해 body태그 내부의 하단에 삽입해야 한다는 주제였다.
어떤 스터디원 한 분이 테일윈드나 폰트 등을 사용할 때에도 script 태그를 사용하는데 그 때에는 head에 넣어도 된다고 이야기를 하셨다. 그렇다. script태그는 자바스크립트파일 뿐만 아니라 다른 경우에도 썼는데 조금 더 알아보니 CDN이라는 개념이 나왔다.
(script는 '각본, 대본'이라는 뜻과 같이 컴퓨터가 수행할 명령들의 집합이다.)
CDN 사용 사례
처음에는 Fontawesome같은 아이콘을 임포트하는 방식인 줄 알았다. 그런데 React에도 CDN이 있었다. CDN이 뭐지!
CDN(Content Delivery Network)
컨텐츠 전송 네트워크이다. 컨텐츠를 전송하는 방법이다.
우리가 웹사이트를 만들고 서버를 구축해서 사용자들이 이용할 것이다. 그런데 인터넷은 주소를 입력하면 세계 각지에서 접속할 수 있다. 한국에서 한국서버를 만들어놓으면 유럽, 미국에서 접속할 수 있다. 그런데 태평양 인도양을 건너서 접속하는 것이 쉬울까?
또, 나의 블로그처럼 작고 귀여운 사이트는 들어오는 요청이 많지 않겠지만 유튜브나 넷플릭스같이 전세계적으로 엄청난 사용자가 찾는 사이트는 혼자 요청 하나하나를 모두 수행하기에 결국 무리가 올 것이다.
이 때 체인점을 내듯이 서버를 세계 각지에 분산시켜놓고(이런 서버를 엣지라고 한다) CDN을 도입하면 현재 가장 이용하기 좋은 엣지를 매칭해준다.
얼마 전 인천공항에서 출국을 하는데 6개의 출국장이 있는데 3번 출국장에 사람이 굉장히 많았다. 무슨 일이 있나 싶어서 확인해볼 정도로 많은 사람들이 3번 출국장에서 대기를 하고 있었다. 물어봤더니 별 일은 없고 사람들이 단지 그 곳이 가장 가까워서 이용하는 것이라고 한다. 전광판에는 어떤 출국장이 한산하고 복잡한지 나와있다. 가장 한산한 출국장을 찾은 나는 대기없이 수속을 금방 끝낼 수 있었다.
이처럼 가장 가깝다고해서 빠른 것이 아니다. CDN은 물리적 거리와 접속량 등을 고려해서 최적의 엣지를 매칭해준다.
우리가 웹사이트를 접속하기 위해서 주소창에 주소를 입력하면 브라우저는 DNS(Domain Name System)에서 주소와 매칭되어있는 ip주소를 찾아 그 쪽으로 요청을 보낸다. CDN을 사용한다면 이 도메인에 본사 주소가 적혀있는 것이 아니라 체인점을 총괄하는 부서인 CDN의 주소가 적혀있는 것이다. 이는 도메인 구매한 사이트 등에서 설정할 수 있다.
DNS ❓ DNS는 일종의 전화번호부이다. 우리는 123.456.123.456 같은 ip주소가 어떤 사이트인지 다 외울 수 없다. 사람의 언어로 이름표를 단 것이 도메인인데 이 정보들이 저장되어 있다. 우리가 naver.com같은 도메인을 입력하면 브라우저가 DNS에서 도메인에 연결되어 있는 ip주소를 찾아 연결하는 것이다.
CDN을 왜 사용하는가?
CDN을 사용하면 본사에서 세계 전국 각지의 고객들을 다 응대하지 않아도 되니까 금방금방 처리가 가능하다. 이것은 대역폭비용을 줄여 서버 호스팅비용을 절감할 수 있다. 대역폭이란 창구를 생각하면 될 것 같다. 수많은 응답들을 처리하기 위해 본사에 수많은 창구를 열어서 동시다발적으로 처리하면 직원을 고용할 비용도 많이들고 한 곳에서 수많은 요청을 처리하기 때문에 과부하가 생길 가능성도 높다.
대역폭 ❓ 컴퓨터 네트워크에서 얼마나 데이터가 빠르게 보내지는가를 이야기할 때 전송속도와 대역폭을 고려한다. 대역폭은 어떤 시간동안 얼마나 많은 데이터를 보낼 수 있느냐이다. 도로에 비유할 때 전송속도는 제한속도이고 대역폭은 몇차선까지 있는가이다. 제한속도가 높고 차선이 많을수록 많은 데이터를 보낼 수 있다.
CDN은 비용을 절감해줄 뿐만 아니라 안정성과 보안 측면에서도 좋다.
CDN은 엣지들을 주시하며 최적의 엣지로 매칭시켜주기 때문에 만약에 어떤 엣지에 오류가 생기면 재빨리 사용 가능한 다른 곳으로 연결해줄 것이다. 사용자가 서비스를 이용하는데 지연되거나 오류가 발생하는 것을 방지할 수 있다.
악성코드에도 대응할 수 있다. 우리가 아는 DDos, 서버에 총 공격을 가하는 DDos로부터 대응할 수 있다. 본사로 진입하기 전에 CDN을 통해 여러 엣지들이 탱크처럼 막고 있으므로 직접적인 본사 공격에 대비할 수 있고 CDN을 전문으로 다루는 회사들은 이에 대한 솔루션이 마련되어있을 것이다.
또한 좋은 CDN업체들은 강력한 최신의 인증방식을 제공하여 나의 서버의 보안등급이 낮더라도 보완해줄 수도 있다. 사용자가 더욱 안심하고 사이트를 이용할 수 있는 것이다.
CDN의 이러한 강점들 때문에 많은 서비스에서 CDN을 도입한다. CDN업체별로 쌓아온 노하우들이 다르므로 잘 고려하고 내가 이용하고자 하는 서비스에 맞게 선정하여 이용하면 될 것이다.
Reference
https://www.youtube.com/watch?v=_kcoeK0ITkQ
'개발 > CS, Network' 카테고리의 다른 글
URL과 URI / IP와 PORT / 도메인과 DNS (0) | 2023.03.29 |
---|---|
Client Server Architecture / Protocol / API (0) | 2023.03.28 |
Virtual DOM을 왜 사용할까? (0) | 2023.03.06 |
CLI(Command Line Interface)가 무엇일까? (2) | 2023.03.06 |
DOM과 브라우저 동작원리 (0) | 2023.03.05 |
- Total
- Today
- Yesterday
- 구글서치콘솔
- 태릉맛집
- 공릉 밀크티
- 회고
- 을지로맛집
- 공릉맛집
- 태릉 술집
- sitemap
- 롯데월드 키오스크
- 깃허브 데스크탑 로그아웃
- 공릉 꼬치
- Til
- 춘천맛집
- 태릉 이자카야
- solo project
- 롯데월드 매직패스 프리미엄
- 티스토리검색
- 춘천닭갈비
- 공릉 이자카야
- 티스토리
- 공릉 카페
- 맥 깃허브 데스크탑
- 이수 맛집
- 태릉삼겹살
- 공릉 맛집
- 태릉 꼬치
- 신불당 술집
- 홍천 삼겹살
- 공릉 술집
- 롯데월드 보조배터리
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |