본문 바로가기
Backend

[Roadmap.sh > Internet] 1. 인터넷은 어떻게 작동하나요?

by ZIAHO 2025. 1. 14.

해당 글은 https://roadmap.sh/backend 의 '백엔드 개발자 로드앱' 을 기반으로 학습한 내용을 작성한 글입니다.

위 링크의 로드맵을 따라 학습한 내용을 지속적으로 포스팅 할 예정입니다.


📁 인터넷은 어떻게 작동하나요?

 

📝 인터넷이란 무엇인가?

인터넷이 작동하는 원리를 알아보기 앞서, 인터넷이란 무엇인지에 대해 먼저 알아보도록 하겠습니다.

 

인터넷이란, '표준화된 프로토콜(주로 TCP/IP를 사용)을 통해 통신하는 서로 연결된 컴퓨터로 구성되어있는 글로벌 네트워크'를 의미합니다.

조금 더 간단하게 이야기하면, 전 세계에 존재하는 수 많은 컴퓨터들이 서로 정보나 데이터를 주고받을 수 있도록 해주는 역할을 하는 인프라 라고 볼 수 있겠습니다.

 

 

📝 전선, 케이블 그리고 Wi-Fi

그렇다면 위에서 언급했던 정보나 데이터들은 어떠한 방식을 통해서 이동하게 될까요?

 

인터넷은 마치 우편 서비스와 매우 흡사합니다. 다만, 무엇을 전송하는지가 살짝 다릅니다.

인터넷은 우편상자나 봉투 대신에 '바이너리 정보'를 전송합니다.

 

그리고 이 정보는 비트(Bits)로 이루어져있고, 이 비트는 서로 반대되는 것의 한 쌍으로 정의됩니다.

컴퓨터는 1과 0으로 이루어져있다 라는 이야기를 들어보셨을겁니다.

이와 같이 1과 0으로 이루어진것 처럼 서로 상반된 것의 한쌍을 비트라고 부릅니다.

또, 이렇듯 2개의 상태로 이루어져있으므로 '이진 코드'라고 부르는 것이죠.

 

8비트가 모이면 1바이트(Byte)가 됩니다.

1,024바이트는 1킬로바이트(Kilobyte)가 되고, 1,024킬로바이트는 1메가바이트(Megabyte)가 됩니다.

우리가 음악파일등의 용량을 보면 3~4MB인것을 볼 수 있습니다.

단위가 다를뿐, 인터넷의 모든 것은 비트로 나타나고 전송됩니다.

 

과거시대에 이루어졌던 봉화 신호를 알고 계신가요?

불 또는 연기가 1개일땐 이렇고, 2개일땐 저렇고, 3개일땐 어떻고...

위 처럼 불빛의 개수를 통해 상황을 알리는 방식입니다.

서로 상황이나 정보를 주고받기에 괜찮은 방법이지만, 속도가 매우 느리고 인간에게 의존해야하기 때문에 오류도 많이 발생하죠.

그렇기 때문에 우리에게 필요한것은 기계입니다.

이 기계는 1과 0을 해석하고 정보를 주고받는것을 매우 빠르고 정확하게 처리를 해줍니다.

 

그리고 이 정보를 주고받는 시스템은 다양한 종류의 매개체를 통해 만들어져있습니다.

크게 3가지로 전기, 빛, 주파수를 사용하고있습니다. 단위제목으로 작성한 전선, 광섬유케이블, 무선입니다.

 

1. 전선

우리가 흔히 사용하고 볼 수 있는 이더넷을 사용한다면, 몇백미터만 떨어져도 신호가 끊기거나, 간섭이 생길것입니다.

글로벌하게 데이터를 주고받기에는 부적절하죠.

 

2. 광섬유케이블

전선의 단점을 극복하기 위해 광역 케이블이 등장하였습니다. 바다를 건너는것이죠.

전기보다 빠른 빛을 사용하여 더욱 먼 거리 사이에 비트를 주고받을 수 있는 환경을 제공해줍니다.

매우 빠르고 오랜 거리를 이동해도 신호가 저하되지 않는 장점을 가지고 있지만,

비용이 많이들고 설치가 어렵습니다.

 

3. 무선

우리가 흔히 알고있는 Wi-Fi, 무선으로 비트를 주고 받을 수도 있습니다.

무선신호를 사용하여 다른 장소로 비트를 전송하는데, 1과 0을 다양한 주파수의 전파로 번역하고

수신하는 기계가 이를 역으로 해석하여 컴퓨터가 사용하는 이진코드로 다시 바꾸어줍니다.

매우 편리한 방식이지만 무선 또한 거리가 짧다는 단점이 존재합니다.

 

 

📝 IP 주소와 DNS

위에서 데이터 전송을 위한 물리적인 매체에 대해 알아보았으니, 이번에는 원활한 통신을 위해 서로 지키기로 한 규약과 표준을 의미 하는 프로토콜에 대해 알아보도록 하겠습니다.

 

인터넷 상의 수 많은 각각의 기기들은 모두 각자의 고유 주소를 갖습니다.

이것은 대부분의 집과 회사가 각각의 우편주소를 가지고 있는 방식으로 비유할 수 있습니다.

우편을 통해서 무엇인가를 전해받았을 때, 누가 어디서 보냈는지 확인이 가능해야하고, 우편을 보낼때는 원하는 목적지로 잘 전달되게 할 수 있도록 우편체계를 잘 알고있어야 하는것처럼요.

이것을 인터넷 프로토콜(IP)라고 부릅니다.

 

위의 프로토콜 명을 기반으로 컴퓨터의 주소를 'IP주소'라고 부릅니다.

우리가 웹사이트를 사용하는것은, 우리의 컴퓨터가 다른 컴퓨터에게 정보를 요청하는것입니다.

요청을 다른 컴퓨터의 IP주소로 보내면서 자신의 주소도 함께 보냅니다. 그렇게 해서 다른 컴퓨터가 답장을 어디로 보낼지 알 수 있게 하는것입니다.

 

한번쯤은 들어보셨다싶이 192.168.0.1 과 같은 것이 바로 IP 주소입니다. 다만 이는 IPv4 방식이며, 인터넷의 폭발적인 인기로 가용한 주소가 모두 사용되어 현재는 IPv6를 사용하고있고 IPv6는 기존의 방식보다 더욱 긴 128비트의 주소를 사용하고있습니다.

 

이렇게 길어지는 IP주소는 아무래도 외우기가 어렵습니다.

DNS(Domain Name System)이라 부르는 시스템은 이를 해결하기 위해 등장했고,

네이버와 같이 www.naver.com 과 같은 이름을 IP 주소와 연결하여 우리는 도메인 이름을 찾고 이와 연결된 IP주소를 획득하게 됩니다.

 

 

📝 패킷, 라우팅 및 안정성

어떤 공사를 위해서 많은 양의 시멘트를 서울에서 부산까지 옮겨야한다고 생각해봅시다.

이를 위해서 많은 양의 트럭이 필요할것입니다. 한대의 트럭에 모든 시멘트를 담아서 보낼수는 없을테니까요.

그리고 이 각각의 트럭들은 동일한 출발점인 서울과 동일한 목적지인 부산을 가지고 있지만, 각자 가는동안의 교통상황 등으로 인해 각기 다른 도로를 이용하여 도착지점까지 이동할것이고 도착지에 각기 다르게 도착할것입니다.

그러나 모두가 도착만 한다면 필요한 양의 시멘트가 있기 때문에 문제없이 공사를 진행 할 수가 있겠죠.

여기서 언급한 각각의 트럭들이 바로 패킷입니다.

즉, 통신망을 통해 전송하기 쉽도록 데이터를 잘게 나눈 전송 단위를 패킷이라고 합니다.

 

각 패킷에는 출발지가 어디이며 도착지는 어디인지에 대한 인터넷 주소가 들어있습니다.

라우터라고 부르는 인터넷 상의 특수 컴퓨터는 트래픽 관리자와 같은 역할을 하여 패킷을 순조롭게 네트워크를 통해 이동하도록 합니다.  만약 하나의 경로가 막힌다면 각각의 패킷은 인터넷을 통해 다른 경로로 이동하며 각자 조금은 다른 시간에 목적지에 도착할 수 있습니다.

 

각 라우터는 패킷을 보내는 여러개의 경로의 트랙을 따르고, 패킷의 목적지 주소에 기초하여 각 데이터 조각별로 이용 가능한 가장 효율적인 경로를 선택합니다.

목적지까지 도달하기 위한 최고의 루트가 항상 직선코스일 필요는 없는것입니다. 직선코스가 끊어져있다면 돌아서 가는것이 최고의 루트일 것이고, 이렇게 여러 경로의 옵션이 존재한다면 네트워크상의 결점이 사라지게 되는것입니다.

 

TCP(Transmission Control Protocol, 전송 제어 프로토콜)은 패킷으로 전송 및 수신되는 모든 데이터를 관리합니다.

비유하자면 등기우편 서비스와 흡사하다고 볼 수 있습니다.

예를들면 음악을 듣고싶어서 음악프로그램에 노래를 요청을 합니다. 그러면 프로그램은 노래를 여러 패킷으로 쪼개서 보내줄것입니다. 패킷들이 도착하면, TCP는 정리를 하고 모든 패킷이 잘 도착하였는지 확인합니다. 만약 빠진 패킷이 있다면 프로그램에 빠진 패킷을 다시 요청을 하게되고 빠진 패킷들을 전부 수신하게 된다면 완성된 음악을 들을 수 있는것입니다.

 


출처

https://roadmap.sh/backend

 

Backend Developer Roadmap: What is Backend Development?

Learn what backend development is, what backend developers do and how to become one using our community-driven roadmap.

roadmap.sh

https://roadmap.sh/guides/what-is-internet

 

How does the internet work? - roadmap.sh

Learn the basics of internet and everything involved with this short video series

roadmap.sh

'Backend' 카테고리의 다른 글

[Roadmap.sh > Internet] 2. HTTP란 무엇인가요?  (0) 2025.04.29