인터넷은 우리 일상에서 떼려야 뗄 수 없는 존재가 되었습니다. 매일 수없이 사용하지만, 정작 웹페이지를 열거나 영상을 클릭했을 때 화면 뒤에서 실제로 어떤 일이 벌어지는지 깊이 생각해 본 적은 드뭅니다.
freeCodeCamp.org 유튜브 채널에는 바로 그 궁금증을 해소해 주는 약 2시간 분량의 무료 강의가 공개되었습니다. 이 강의는 인터넷의 작동 원리와 기본 네트워킹 개념을 처음부터 차근차근 알려줍니다.
강의를 진행하는 이언 프로스트(Ian Frost)는 Udemy에서 수천 명에게 강의한 경험을 가진 베테랑 강사로, 복잡한 개념을 다이어그램과 시각 자료로 쉽게 풀어내는 데 탁월한 평가를 받고 있습니다. 사전 지식이 전혀 없어도 따라올 수 있도록 추상적인 개념부터 하나씩 쌓아 올리는 방식으로 구성된 것이 특징입니다.
강의에서 배울 수 있는 내용
- 인터넷의 작동 원리
- 스위치, 라우터, 액세스 포인트 등 핵심 네트워크 장비
- 전 세계에 흩어진 전자 기기들이 서로 통신하는 방법
- 유튜브 영상을 시청할 때 백그라운드에서 일어나는 일
- ISP(인터넷 서비스 제공업체)의 개념과 역할
- 그 외 기본 네트워킹 개념 전반
핵심 개념 미리보기
1. 스위치와 LAN(로컬 영역 네트워크)
강의는 '작은 회사의 시스템 관리자가 되어 사무실 컴퓨터들을 서로 연결하는' 상황 설정으로 시작합니다. 같은 공간에 있는 컴퓨터들을 연결하려면 스위치(switch)가 필요한데, 스위치는 반드시 케이블을 통해서만 연결된다는 점이 중요합니다. 소규모 환경에서는 주로 Cat5, Cat6 동선 케이블을 사용하고(Cat은 카테고리를 의미하며 Cat6가 더 빠릅니다), 더 높은 성능이 필요하면 광케이블을 활용할 수 있습니다. 무선 연결이 필요하다면 액세스 포인트(access point)를 사용해야 합니다.
이렇게 케이블로 연결된 장비들의 집합이 바로 LAN입니다. LAN은 건물, 사무실, 집처럼 물리적으로 제한된 지역 안에서만 구성할 수 있으며, 세계 곳곳의 집과 사무실마다 하나씩 존재하는 셈입니다.
2. 라우터와 인터넷 연결
스위치만으로는 같은 LAN 안의 통신만 가능할 뿐, 인터넷 접속은 불가능합니다. 인터넷이라는 문을 여는 장비가 바로 라우터(router)이며, ISP로부터 받은 케이블을 라우터에 연결해야 비로소 외부와 통신할 수 있습니다. 참고로 가정에서 흔히 보는 홈 라우터(home router)는 라우터와 스위치가 하나로 합쳐진 장비라는 사실도 강의에서 다룹니다.
3. 패킷의 여정과 라우팅
컴퓨터들이 주고받는 데이터는 패킷(packet)이라는 단위로 전송됩니다. 라우터는 내부의 라우팅 테이블(routing table)을 참조해 패킷을 어느 경로로 보낼지 결정하며, 특정 경로가 혼잡하면 우회 경로를 선택하는 혼잡 제어(congestion control)도 수행합니다.
그렇다면 왜 하나의 거대한 라우터가 아니라 수많은 라우터가 전 세계에 분산되어 있을까요? 강의에서는 과부하 문제, 단일 장애점(single point of failure) 문제, 케이블 길이 문제라는 세 가지 이유를 들며 분산 구조의 필요성을 설명합니다.
4. 해저 케이블, 보이지 않는 인터넷의 심장
국제 통신의 약 99%는 바닷속 해저 케이블로 처리됩니다. 전 세계에 놓인 해저 케이블은 약 468개에 달하며, 길이는 131km에서 20,000km에 이르기까지 다양합니다. 실제로 2018년에는 한 선박이 유럽과 서아프리카를 잇던 약 17,000km 케이블을 실수로 절단해 여러 나라의 인터넷이 순식간에 마비되기도 했습니다. 매년 약 200건의 케이블 문제가 발생하며, 2007년에는 해적들이 태국·베트남·홍콩을 잇는 11km 케이블을 잘라 고철로 판매한 황당한 사건도 있었다고 합니다. 장거리 전송에는 오류율이 낮은 광섬유 케이블이 사용됩니다.
5. 인터넷이란 '네트워크의 네트워크'
강의 후반부에는 인터넷의 교과서적 정의가 등장합니다. 바로 '네트워크의 네트워크(network of networks)'입니다. 가정, 회사 등 세계 곳곳의 수많은 LAN이 라우터와 ISP를 통해 연결된 거대한 시스템 전체가 곧 인터넷인 셈입니다.
6. 서버, 스트리밍, 분산 서버 구조
웹사이트에 접속한다는 것은 요청 메시지(request)를 서버에 보내고 응답 메시지(response)를 받는 과정입니다. 서버(server)는 일반 컴퓨터와 근본적으로 같지만, 수천 명의 동시 접속을 처리해야 하므로 훨씬 강력한 하드웨어를 갖춥니다. 대형 서비스는 전 세계에 서버를 분산 배치해 단일 장애점을 피하고 부하를 분산하는데, 영상이 조각 단위로 순차 전송되는 스트리밍(streaming) 덕분에 전체 파일을 다 받기 전에도 시청이 가능합니다.
7. WAN과 VPN
지리적으로 떨어진 여러 LAN을 하나로 묶은 네트워크를 WAN(광역 네트워크)이라고 합니다. 인터넷은 누구의 소유도 아닌 공용망이기 때문에 중요한 회사 자료를 직접 전송하면 보안 위험에 노출됩니다. 이를 해결하는 것이 VPN으로, 터널링(tunneling)과 암호화(encryption)를 통해 공용망 위에 사설망처럼 안전한 연결을 만들어 줍니다. 강의에서는 편지, 봉투, 우편배달부에 빗대어 터널링 개념을 아주 직관적으로 설명합니다. 참고로 LAN은 스위치로, WAN은 라우터로 구성한다는 점도 기억할 만합니다.
8. ISP의 계층 구조와 피어링
인터넷 접속의 첫 단추는 동네 단위를 담당하는 지역 ISP(local ISP)이며, ISP 사무실은 PoP(Point of Presence)라고 부릅니다. 도시 간 통신은 지역 ISP(regional ISP)가, 국가 간 통신은 글로벌 ISP(global ISP)가 담당하며, 글로벌 ISP들이 서로 연결한 망을 인터넷 백본(internet backbone), 효율적인 상호 연결 지점을 IX(Internet Exchange Point)라고 합니다.
구글 같은 거대 기업은 피어링(peering)이라는 기술로 ISP에 직접 연결해 속도와 보안을 모두 확보합니다. 유튜브 영상이 끊김 없이 잘 재생되는 비결이 바로 분산 서버 구조와 피어링 인프라에 있습니다.
누가 들으면 좋은 강의인가
연령이나 직업에 상관없이 인터넷을 사용하는 모든 사람을 위한 강의입니다. 비전공자, 개발 입문자, 네트워크 기초를 탄탄히 다지고 싶은 분이라면 누구나 큰 도움을 받을 수 있습니다. 강의 말미에는 복습용 질문도 포함되어 있어 학습 효과를 극대화할 수 있습니다.
전체 강의는 freeCodeCamp.org 유튜브 채널에서 무료로 시청할 수 있습니다(약 2시간 분량).