메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

[AI 쓰는 어른의 IT 상식 ①] 넷플릭스는 왜 전 세계가 동시에 봐도 안 끊길까?

hits-icon807

금요일 밤 10시, 일주일의 피로를 풀기 위해 소파에 누워 넷플릭스를 켭니다. 전 세계가 기다려온 신작의 재생 버튼을 누릅니다. 화면이 깜빡이는가 싶더니 불과 1초 만에 익숙한 넷플릭스 로고가 뜨고, 드라마가 시작됩니다.

 

 

우리는 이런 경험을 당연하게 여깁니다. 소파에 편히 누운 채 리모컨 버튼 하나만 누르면, 세계 곳곳에서 만들어진 영상이 거실로 찾아오는 시대니까요.

 

하지만 잠시 생각해보면 이것은 쉽지 않은 일입니다.

 

넷플릭스의 본사는 미국 캘리포니아에 있습니다. 우리가 보는 영상이 재생될 때마다 미국에 있는 서버에서 출발한다면 어떻게 될까요? 미국과 한국 사이에는 물리적인 거리가 있습니다. 여러 네트워크 장비와 해저 케이블을 거칠수록 데이터가 도착하는 데 시간이 걸립니다.

 

 

더 큰 문제도 있습니다.

 

지금 이 순간에도 전 세계적으로 수많은 사람이 동시에 재생 버튼을 누르고 있을 것입니다. 모두가 하나의 멀리 떨어진 서버에서 영상을 받아야 한다면 서버와 통신망에는 엄청난 부담이 생깁니다.

 

어떻게 태평양 건너의 영상을 수천만명이 동시에, 단 1초의 기다림도 없이 볼 수 있는 걸까요? 

 

단순히 인터넷이 빨라서? 아니면 넷플릭스가 슈퍼컴퓨터로 서비스해서? 이것들은 필요조건일 뿐, 빠른 속도를 설명할 수 없습니다. 진짜 비밀은 데이터를 사용자 가까이에 미리 가져다 놓아 ‘데이터가 실제 이동하는 거리를 줄이는 데’ 있습니다.

 

 

서울에만 영화관이 있다면 어떨까요?

 

 

인기 영화가 개봉했습니다. 그런데 대한민국에 영화관은 딱 하나, 서울 강남 본점밖에 없다고 상상해봅시다. 부산에 사는 사람은 영화를 보기 위해 KTX를 타고 서울까지 와야 합니다. 광주, 대구, 강원도에 사는 사람들도 마찬가지겠죠.

 

서버도 영화관과 비슷합니다. 사용자와 서버 사이의 거리가 멀수록 요청과 응답이 오가는 데 더 많은 시간이 필요합니다. IT에서는 이렇게 데이터를 요청하고 받는 데 걸리는 지연 시간을 ‘레이턴시(Latency)’라고 부릅니다.

 

문제는 거리뿐만이 아닙니다. 전국에서 영화를 보고 싶은 사람들이 한꺼번에 서울 강남 본점으로 몰린다면 어떨까요? 영화관이 아무리 커도 입구와 좌석에는 한계가 있습니다. 사람이 너무 많이 몰리면 기다리는 시간이 길어지고, 결국 입장조차 하지 못하는 사람도 생길 겁니다.

 

IT에서도 마찬가지입니다. 짧은 시간에 너무 많은 요청이 몰려 서버가 감당할 수 있는 처리 용량을 넘어선 상태를 ‘트래픽 초과(Traffic Overflow)’라고 합니다. 트래픽 초과가 계속되면 서비스는 점점 느려지고, 결국 서버가 정상적으로 요청을 처리하지 못하는 ‘서버 다운(Server Down)’ 상태에 이를 수도 있습니다.

 

결국 ‘서울 본점 하나’만으로는 이동 시간(속도)과 수용 인원(안정성), 두 가지 문제를 모두 해결하기 어렵습니다.

 

그럼 어떻게 해야 할까요?

 

 

해결책은 관객 가까이에 ‘분점’을 짓는 것

 

 

방법은 단순합니다. 모든 관객을 서울로 불러 모으는 대신, 각 지역에 분점 영화관을 짓습니다. 본점에 있는 영화 필름을 복사해 각 지역의 분점에 미리 가져다 놓습니다. 

 

이제 부산에 사는 관객은 서울까지 올라갈 필요가 없습니다. 가까운 부산 분점에서 같은 영화를 보면 됩니다.각 지역의 관객이 가까운 분점을 이용하면 이동 시간도 짧아지고, 서울 본점에 사람이 몰리는 일도 줄어듭니다.

 

이제 영화관의 ‘분점’을 넷플릭스의 서버로 바꾸어 생각해봅시다. 

 

 

넷플릭스도 영상 파일을 여러 지역의 서버에 미리 저장해둡니다. 사용자가 재생 버튼을 누르면 멀리 있는 원본 서버가 아니라 자신과 가까운 서버에서 영상이 전송됩니다.

 

이처럼 영화, 이미지, 파일 등의 콘텐츠를 여러 지역의 서버에 미리 저장하고 사용자와 가까운 곳에서 빠르게 전달하는 시스템을 콘텐츠 딜리버리(전송) 네트워크 (CDN, Content Delivery Network)라고 합니다. 말 그대로 콘텐츠를 사용자에게 빠르게 배달하기 위해 전 세계에 구축한 서버 네트워크망입니다.

 

 

AI 쓰는 업무 현장: “CDN에 태울게요”

 

이제 시선을 비즈니스 현장으로 돌려봅시다. 기획자나 마케터로 일하다 보면 개발자와 이런 대화를 나눌 때가 있습니다.

 

 

‘CDN에 태운다’는 건 무슨 뜻일까요?

 

홈페이지 이미지가 원본 서버에만 있다면 사용자는 접속할 때마다 그 서버에서 데이터를 가져와야 합니다. 하지만 이미지를 여러 지역의 CDN 서버에 미리 복사해두면 이야기가 달라집니다.부산에 있는 사용자는 멀리 떨어진 원본 서버까지 갈 필요 없이, 가까운 서버에서 이미지를 받아볼 수 있습니다.

 

즉, ‘이미지를 CDN에 태웠다’는 말은 이미지를 여러 CDN 서버에 복사해 사용자가 가까운 곳에서 받아볼 수 있도록 설정했다는 뜻입니다.

 

 

 

거리를 지우는 기술

 

CDN은 물리적인 거리를 줄여 서비스 속도를 높이는 기술입니다.

 

인터넷의 데이터는 빠르게 움직이지만, 지구는 넓고 이용자는 많습니다. 모든 요청이 멀리 떨어진 하나의 원본 서버로 몰리면 전송 시간은 길어지고 서버의 부담도 커집니다. 그 결과 서비스가 느려지거나, 요청이 몰리는 순간 제대로 응답하지 못할 수도 있습니다.

 

서비스가 느리다면 이런 질문을 해볼 수 있습니다.

 

우리 서비스는 아직도 서울의 본점만 고집하고 있지는 않을까?
이제는 고객 가까이에 분점을 낼 때는 아닐까?

 

CDN의 핵심은 단순히 파일을 복사하는 데 있지 않습니다. 콘텐츠가 고객에게 도달하는 거리와 시간을 줄여 더 빠르고 안정적인 경험을 제공하는 데 있습니다. 고객을 기다리지 않게 하는 속도, 그것이 곧 서비스의 경쟁력이 될 것입니다.


위 콘텐츠는 『AI 쓰는 어른의 IT 상식』내용을 기반으로 작성하였습니다.

 

우리가 당연하게 누르는 버튼 하나 뒤에는 수많은 기술이 움직이고 있습니다. 넷플릭스의 ‘빠른 재생’ 뒤에 CDN이 있었다면, 배달 앱의 ‘주문하기’ 버튼 뒤에서는 또 어떤 일이 벌어지고 있을까요? 다음 편에서는 주문과 결제가 어떻게 안전하게 처리되는지, CRUD와 트랜잭션, API를 살펴봅니다. 

 

댓글

댓글 입력