인터넷을 만든다고 하면 아주 거대한 일을 떠올리기 쉽습니다. 바다 밑을 지나는 케이블, 통신사 건물 안의 장비, 수많은 서버가 있는 데이터센터, 하늘의 위성 같은 것들이 먼저 생각날 수 있습니다. 실제 전 세계 인터넷에는 그런 것들이 들어갑니다. 하지만 인터넷의 핵심은 장비의 크기나 규모가 아닙니다.
인터넷은 한 대의 거대한 컴퓨터가 아닙니다. 전 세계 어딘가에 모든 정보를 들고 있는 하나의 마법 상자가 있고, 우리가 거기에 접속하는 구조도 아닙니다. 인터넷은 여러 개의 작은 네트워크가 서로 연결된 구조입니다. 그래서 인터넷을 흔히 네트워크들의 네트워크라고 부릅니다.
여기서 네트워크는 '서로 데이터를 주고받을 수 있게 연결된 컴퓨터들의 묶음'입니다. 집 안의 노트북과 공유기, 회사의 컴퓨터들, 학교의 서버실, 통신사의 거대한 장비들도 각각 하나의 네트워크가 될 수 있습니다. 이 네트워크들이 서로 약속을 맞추고 길을 열면 더 큰 네트워크가 됩니다. 그런 연결이 아주 많이 이어진 것이 우리가 매일 쓰는 인터넷입니다.
이 책에서 말하는 "인터넷 만들기"는 전 세계 인터넷을 새로 만든다는 뜻이 아닙니다. 인터넷이 움직이는 핵심 원리를 작게 줄여 직접 조립해 본다는 뜻입니다. 장난감 도로를 깔아 도시의 교통 흐름을 이해하는 것과 비슷합니다. 장난감 도로는 실제 고속도로가 아니지만, 차선, 신호, 목적지, 갈림길의 원리를 보여 줍니다. 이 책의 작은 인터넷도 마찬가지입니다. 크기는 작지만, 그 안에는 실제 인터넷을 이해하는 데 필요한 핵심 원리가 들어 있습니다.
AI 생성 이미지
우리가 만들 것은 무엇이고, 무엇을 흉내 낼까
우리가 만들 작은 인터넷에는 몇 가지 역할이 등장합니다.
먼저 클라이언트가 있습니다. 클라이언트는 요청하는 쪽입니다. 식당에서 주문하는 손님을 떠올리면 쉽습니다. 웹 브라우저를 여는 내 컴퓨터가 보통 클라이언트 역할을 합니다.
다음은 서버입니다. 서버는 요청을 받고 응답하는 쪽입니다. 식당의 주방처럼 주문을 받아 음식을 내놓습니다. 웹 서버는 "이 페이지를 보여 줘"라는 요청을 받으면 HTML, 이미지, 문서 같은 데이터를 돌려줍니다.
클라이언트와 서버가 같은 방 안에 있다고 해서 자동으로 통신할 수 있는 것은 아닙니다. 둘 사이에는 데이터가 지나갈 길이 필요합니다. 그 길을 만드는 장치 중 하나가 스위치입니다. 스위치는 같은 네트워크 안에서 컴퓨터들을 이어 주는 장치입니다. 택배 분류장에서 같은 동네 안의 집들을 구분해 상자를 보내는 모습과 비슷합니다.
네트워크와 네트워크를 잇는 장치는 라우터입니다. 라우터는 다른 동네로 가는 길목에 서 있는 안내자에 가깝습니다. "이 목적지는 우리 동네가 아니니 저쪽 길로 보내야 한다"라고 판단합니다. 집에서 쓰는 공유기도 라우터 역할을 합니다.
그리고 사람이 읽기 쉬운 이름을 숫자 주소로 바꾸는 DNS가 있습니다. DNS는 전화번호부에 비유할 수 있습니다. 우리는 example.com 같은 이름을 기억하지만, 컴퓨터는 실제로 IP 주소 같은 숫자 주소를 사용해 목적지를 찾습니다. DNS는 이름을 보고 그에 맞는 주소를 알려 줍니다.
마지막으로 웹 서버를 둡니다. 웹 서버는 인터넷 위에서 웹 페이지를 주고받는 연습을 하게 해 줍니다. 인터넷은 도로이고, 웹은 그 도로 위를 달리는 택배 서비스 중 하나라고 생각하면 됩니다. 물론 이 비유는 여기까지입니다. 실제 인터넷에서는 도로처럼 물리적인 길만 있는 것이 아니라, 데이터를 잘게 나누고, 주소를 붙이고, 여러 약속에 따라 처리하는 과정이 함께 일어납니다.
작은 연결과 전 세계 인터넷의 공통점
컴퓨터 두 대를 케이블 하나로 직접 연결한 모습과 전 세계 인터넷은 규모가 완전히 다릅니다. 하지만 둘 다 통신하려면 공통으로 필요한 것이 있습니다.
첫째, 지나갈 길이 필요합니다. 데이터는 공중에 막연히 떠다니지 않습니다. 전기 신호, 빛 신호, 무선 신호 같은 형태로 어딘가를 지나갑니다. 케이블이든 와이파이든, 먼저 비트가 이동할 길이 있어야 합니다. 비트는 0과 1로 표현되는 가장 작은 데이터 조각입니다. 전등 스위치가 꺼짐과 켜짐 두 상태를 갖는 것처럼, 컴퓨터는 수많은 0과 1을 조합해 글자와 사진과 영상을 표현합니다.
둘째, 주소가 필요합니다. 편지를 보내려면 받는 사람의 주소가 있어야 합니다. 네트워크에서도 마찬가지입니다. "누구에게 보낼 것인가"를 표시해야 데이터가 길을 잃지 않습니다. 이 책에서는 나중에 IP 주소를 다룹니다. IP 주소는 인터넷에서 컴퓨터나 장비를 찾기 위해 쓰는 주소입니다.
셋째, 길 찾기가 필요합니다. 같은 방 안에서는 목적지가 가까울 수 있습니다. 하지만 다른 네트워크로 가려면 어느 문을 통해 나갈지 정해야 합니다. 이 일을 라우터가 맡습니다. 라우터는 모든 목적지까지의 전체 지도를 완벽히 외우는 장치라기보다, 받은 데이터를 다음에 어디로 보내야 할지 판단하는 장치에 가깝습니다.
넷째, 이름표가 필요합니다. 사람은 숫자 주소보다 이름을 더 잘 기억합니다. 그래서 example.com이나 www.example.com 같은 도메인 이름을 사용합니다. 하지만 이름만으로는 컴퓨터가 바로 찾아갈 수 없습니다. 이름을 실제 주소로 바꿔 주는 과정이 필요합니다. 그 역할을 DNS가 합니다.
다섯째, 약속이 필요합니다. 아무리 길과 주소가 있어도 서로 다른 방식으로 말하면 알아들을 수 없습니다. 택배 상자에 주소를 쓰는 위치, 우표를 붙이는 위치, 수취인 확인 방법이 정해져 있어야 배달이 됩니다. 네트워크에서도 데이터를 어떤 모양으로 보낼지, 문제가 생기면 어떻게 다시 보낼지, 연결을 어떻게 시작하고 끝낼지 약속이 필요합니다. 이런 통신 약속을 프로토콜이라고 부릅니다.
이 다섯 가지, 즉 지나갈 길, 주소, 길 찾기, 이름표, 약속이 인터넷을 분해해 보는 기본 재료입니다.
안에서는 어떤 일이 일어날까
웹 브라우저에 어떤 주소를 입력했다고 생각해 봅시다. 겉으로는 주소를 치고 엔터를 누른 것이 전부입니다. 하지만 안에서는 여러 단계가 차례로 이어집니다.
먼저 컴퓨터는 그 이름이 어떤 주소를 가리키는지 알아내야 합니다. 이때 DNS에 묻습니다. "이 이름의 실제 주소가 무엇인가요?"라고 질문하는 셈입니다.
주소를 알게 되면 컴퓨터는 데이터를 보낼 준비를 합니다. 요청 내용은 작은 조각으로 나뉘고, 각 조각에는 목적지 주소와 필요한 정보가 붙습니다. 택배 상자에 받는 주소와 보내는 주소를 붙이는 것과 비슷합니다.
그다음 데이터는 내 컴퓨터의 네트워크 문을 나섭니다. 같은 네트워크 안에서는 스위치가 적절한 장치로 전달합니다. 목적지가 바깥 네트워크에 있으면 라우터가 다음 길로 넘깁니다. 라우터는 "이 주소는 여기 안에 없으니 밖으로 보낸다" 또는 "이쪽 네트워크로 보내야 한다"라고 판단합니다.
여러 장치를 지나 서버에 도착하면 서버는 요청을 읽고 응답을 만듭니다. 웹 서버라면 웹 페이지 내용을 돌려줍니다. 응답도 다시 작은 조각으로 나뉘어 클라이언트에게 돌아옵니다. 클라이언트는 받은 조각들을 맞추고, 브라우저는 그것을 사람이 볼 수 있는 화면으로 보여 줍니다.
여기서 중요한 점은 한 번에 모든 것을 이해하려고 하지 않는 것입니다. 인터넷은 여러 층의 일이 겹쳐 보이는 시스템입니다. 이 책은 그 층을 하나씩 벗겨 봅니다. 먼저 비트가 지나갈 길을 보고, 그다음 컴퓨터 안의 네트워크 문을 보고, 작은 방 안의 네트워크를 만들고, 주소와 라우터와 DNS와 웹을 차례로 연결합니다.
고장 나면 어디부터 볼까
인터넷이 안 될 때 많은 사람은 "인터넷이 죽었다"고 말합니다. 하지만 실제로는 여러 부품 중 하나가 막힌 경우가 많습니다. 처음부터 전체를 의심하면 문제를 찾기 어렵습니다. 그래서 우리는 앞으로 다음 질문을 순서대로 던질 것입니다.
첫째, 길이 있는가? 케이블이 연결되어 있는지, 무선 신호를 잡고 있는지 확인합니다. 비트가 지나갈 물리적인 길이 없으면 그 위의 모든 약속은 시작되지 않습니다.
둘째, 주소가 있는가? 내 컴퓨터가 사용할 주소를 받았는지 확인합니다. 주소가 없으면 편지를 들고 있어도 어디에서 출발했는지, 어디로 돌아와야 하는지 알기 어렵습니다.
셋째, 가까운 곳과는 통하는가? 같은 네트워크 안의 장치와 통신되는지 봅니다. 같은 방 안에서도 말이 안 통한다면 바깥 인터넷을 보기 전에 내부 연결부터 확인해야 합니다.
넷째, 바깥으로 나가는 문이 있는가? 라우터가 제대로 동작하는지, 기본으로 나갈 길이 정해져 있는지 봅니다. 건물 안에서는 움직일 수 있지만 정문을 모르면 다른 도시로 갈 수 없습니다.
다섯째, 이름을 주소로 바꿀 수 있는가? 숫자 주소로는 접속되는데 이름으로는 안 된다면 DNS 문제일 가능성이 큽니다. 전화번호는 맞는데 전화번호부가 고장 난 상황과 비슷합니다.
이 다섯 질문은 책의 끝까지 반복해서 사용할 점검표입니다. 인터넷을 만든다는 것은 단순히 장비를 꽂는 일이 아닙니다. 데이터가 지나갈 길을 만들고, 주소를 붙이고, 다음 길을 정하고, 사람이 읽는 이름을 컴퓨터의 주소로 바꾸고, 서로 알아들을 약속을 맞추는 일입니다.
우리가 만들 작은 인터넷은 전 세계 인터넷의 축소판입니다. 작지만 핵심은 같습니다. 이 축소판을 이해하면, 집의 공유기와 회사의 네트워크와 전 세계 인터넷이 완전히 다른 마법이 아니라 같은 원리의 확장이라는 것을 볼 수 있습니다.
이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.