How does internet work?

Aug 15, 2025 · 20 min read

들어가며…

Front-End 신입 포지션에 합격9월 1일부로 입사를 앞두고 있다. 그전에 3차 면접까지 진행하면서 Front-End 기본적인 이해도가 많이 떨어져 있다는 것을 파악했고, 지식의 깊이가 상당히 얕다는 것을 깨달았다…🥲

네트워크, 메모리, 프로세스, 스레드 등 기본적인 CS 지식도 부족했고, js/react도 이해하면서 썼다고 생각했는데, 그게 전혀 아니었다고 생각한다.

roadmap.sh를 이용해 1일 최대 2개씩 나가볼 예정이다.


웹 기반 어플리케이션의 폭발적인 성장으로, 모든 개발자들은 인터넷이 어떻게 동작하는지 이해하는 것이 굉장히 중요해졌다. 이 글과 code.org의 인터넷에 관한 짧은 동영상을 보면, 인터넷의 기본인터넷이 어떻게 동작하는지 알 수 있을 것이다. 다 읽은 후, 아래의 질문에 답해보자.

인터넷이란 무엇인지?

인터넷표준화된 프로토콜을 통해 서로 연결된 글로벌 컴퓨터 네트워크다.

1970년, Bob Kahn과 Vint Cerf가 인터넷이라 부르는 것을 설계하기 시작했다.

처음엔, ARPANET(Advanced Research Projects Agency NETwork)이라는 또 다른 실험의 결과였는데… — 고급 연구 프로젝트 에이전시 네트워크

arpanet
arpanet

Paul Baran은 핵공격에도 실제 생존할 수 있는 통신 시스템을 만드는 방법을 알아내기 위해 노력했다. 그래서 메세지블록으로 쪼개어 그물망(net)을 통해 가능한 한 빨리 모든 방향으로 보낸다는 아이디어를 갖고 있었다.

결국, 전국적인 실험 패킷 네트워크를 만들었고, 성공하게 되어 현재의 인터넷이 되게 된다.

인터넷은 누가 관리하나요?

internet-manage
internet-manage

정부가? 요정? 와이파이를 통제하는 사람? 빌 게이츠?

인터넷수많은 독립적인 네트워크들이 모여 만들어진 거대한 분산형 네트워크이다. (완전히 분산되어 있다는 점!)

이러한 것들을 결정하는 중앙 통제가 없다는 것이다.

이처럼 각 네트워크가 분산되어 있음에도, 모든 기기가 서로 연결되어야만 인터넷이 제 역할을 할 수 있다. 마치 전화 통화로 전 세계 어디에 있는 누구와도 이야기할 수 있기를 기대하는 것처럼 말이다.

유선, 케이블, 그리고 와이파이

인터넷 정보는 이더넷 케이블, 광섬유 케이블, 무선 신호 같은 매체로 비트(bit) 형태로 컴퓨터 간에 이동한다.

사진, 텍스트 메시지, 이메일은 어떻게 기기 간 이동이 될까?

인터넷이 가능하게 만드는 것인데, 이 인터넷은 정보를 이동하게 하는 물리적 시스템과 같다.

인터넷은 우편 시스템과도 비슷하다. 하지만, 상자나 봉투 대신에 바이너리 정보를 전송한다. 이 정보는 비트(bit)로 이루어져 있다. 비트는 서로 반대되는 것의 한 쌍으로 정의된다. (1=켜짐, 0=꺼짐) 즉, 비트는 2개의 상태가 있으므로, 이진 코드라고 부른다.

8bit1byte
1000byte1Kb
1000Kb1Mb

노래는 보통 용량이 어떻게 되나? 3-4MB로 인코딩될 것이다. 따라서 사진이든, 비디오든, 노래든 인터넷의 모든 정보는 비트로 나타나고 전송된다.

하지만, 실제 유무선으로 보내지는 물리적인 어떤 것은 무엇일까?

light-0
light-0

light-1
light-1

방법장점단점
전기(Electricity)저렴하다신호 손실이 발생한다
빛(Light)- 빠르다
- 신호 손실 없다- 비싸다
- 작업하기 어렵다
전파(Radio)이동이 편리하다전송 범위가 짧다

오늘날 비트를 전송할 때, 전기, 빛, 전파를 사용한다.

하지만, 0이 여러 개 연속될 경우, 0의 수를 어떻게 세아릴 수 있을까?

이를 위해, 시계나 타이머를 사용하는 것이다.

예를 들어, 보내는 사람이 1초에 1비트를 보내고, 받는 사람이 매초마다 라인을 확인하고 기록하기로 약속할 수 있을 것이다.

하지만, 초당 1비트보다 좀 더 빠른 걸 원한다면?

더 빠른 속도를 원한다면, 대역폭(bandwidth)을 늘려야 한다. 대역폭장치가 전송할 수 있는 최대 데이터양이며, 비트 전송률로 측정한다. 비트 전송률이란, 보통 1초의 시간 동안 보낼 수 있는 비트(bit)의 수를 의미한다.

속도의 다른 측정 방법은 지연 속도(latency)가 있다. 지연 속도1비트가 한 곳에서 다른 곳으로 이동하는 데 걸리는 시간이다.

인터넷을 전 세계적으로 사용하려면?

먼 거리에 비트를 보낼 수 있는 방법이 필요하다. 그래서 전기 말고 을 이용한다.

광섬유 케이블은 빛을 반사하도록 설계된 유리 실이다. 빛을 케이블에 쏘면 반사되면서 다른 쪽 끝에 도달한다. 빛의 파장 각도를 조절해서 여러 비트를 동시에 보낼 수 있다. 하지만 광섬유 케이블은 비싸고 다루기 어려우며, 유선이라는 단점이 있다.

그럼 무선으로 bit를 보내는 방법이 있을까?

무선으로 비트를 보내는 방법은 무선 신호를 사용한다. 무선 기기는 1과 0을 다양한 주파수의 전파로 바꿔서 전송한다.

카페에서 와이파이를 쓴다면 비트는 무선 라우터로 전달된 후, 물리적인 선을 통해 전송되어 인터넷의 먼 거리를 이동한다. 하지만 무선 신호는 멀리 이동할수록 약해져 신호를 제대로 인식하기 어렵다.

미래엔 더 발전된 기술이 나올 수도 있지만, 정보를 1과 0으로 나누어 전송하는 기본적인 방식은 크게 변하지 않을 것이다.

HTTP and HTML

HTTP는 웹페이지가 인터넷에 전송되는 데 사용되는 표준 프로토콜이다.

전 세계 컴퓨터가 실제로 어떻게 서로 커뮤니케이션할까?

  1. 먼저, 웹 브라우저를 연다. *웹 브라우저: 웹 페이지에 들어가기 위해 이용하는 앱
  2. 웹 주소 또는 URL을 입력한다.
    *URL: 방문하고자하는 웹사이트의 위치 지정자
  3. 컴퓨터는 수천 마일 떨어진 다른 컴퓨터, 즉 서버와 통신하기 시작한다.
  4. 몇 밀리초 안에, 컴퓨터는 서버에게 웹사이트를 요창한다.
  5. 그 서버는 HTTP라 부르는 언어로 컴퓨터에 대답하기 시작한다.
    *HTTP(HyperText Transfer Protocol) : 컴퓨터가 다른 컴퓨터에게 문서를 요청할 때 사용하는 프로토콜

웹사이트의 모양을 결정하는 것은 HTML(HyperText Markup Language)이다. HTML은 웹 브라우저에게 페이지가 어떻게 보여야 하는지 말하기 위해 사용하는 언어다.

이미지 같은 콘텐츠는 HTML 안에 포함되어 있지만, 각각 고유한 URL을 가진 별도의 파일로 존재한다. 브라우저는 이미지 등을 표시하기 위해 각각에 대한 별도의 HTTP 요청을 보내고, 요청이 도착하면 화면에 표시한다.

우리가 웹에서 검색할 때, 단순히 페이지 요청(GET)만 하는 것이 아니다. 양식 작성이나 검색 쿼리를 입력하는 것(POST)도 이에 해당한다.

쿠키는 웹사이트가 사용자를 기억할 수 있는 유일한 방법이다. 웹사이트를 다시 방문하면, 브라우저는 자동으로 쿠키를 통해 사용자를 인식하고, 쿠키에 있는 ID 번호를 서버로 보내는 요청에 첨부한다. 서버는 이 ID 번호를 통해 요청이 해당 브라우저에서 왔다는 것을 알게 되는 것이다.

인터넷의 특징

  1. 완전히 열려져있다.
  2. 연결점 모두가 서로를 공유한다
  3. 정보는 평문으로 전송한다.

인터넷을 통해 전송된 개인 정보를 해커가 몰래 볼 수 있다면?

https-lock
https-lock

하지만 안전한 웹사이트는 이를 방지하기 위해 웹 브라우저에 안전한 채널로 통신하라고 요청한다. 이 안전한 채널은 SSL(Secure Sockets Layer) 또는 그 후속 기술인 TLS(Transport Layer Security)를 사용한다. SSL과 TLS는 스누핑(가로채기)이나 변조를 막기 위해 통신 라인을 감싸는 보안 계층이라고 생각할 수 있다. HTTPS(HTTP Secure)는 HTTP 요청이 안전하게 보호되고 있음을 보장하는 프로토콜이다. 브라우저 주소창에 작은 자물쇠가 표시되면 SSL 또는 TLS가 활성화된 것이다.

digital-certificate
digital-certificate

웹사이트가 안전한 연결을 요청할 때, 먼저 디지털 인증서를 제공한다. 이 인증서는 요청된 웹사이트가 진짜임을 증명하는 공식 신분증과 같다. 디지털 인증서는 인증기관(Certificate Authority)에서 발급하며, 이 기관은 웹사이트의 신원을 검증하고 인증서를 발급하는 신뢰할 수 있는 곳이다. 만약 웹사이트가 적절한 디지털 인증서 없이 연결을 시작하려고 하면 브라우저는 경고를 표시한다.

manage-transport-binary-sequence
manage-transport-binary-sequence

결론적으로, HTTP와 DNS는 HTML이나 미디어 파일 등 웹상의 모든 것을 주고받는 일을 관리한다. 그리고 이 모든 것을 가능하게 하는 기반 기술은 정보를 작은 패킷으로 쪼개서 운반하는 TCP/IP라우터 네트워크이다. 패킷 자체는 이진법(1과 0)으로 구성되어 물리적으로 전기선, 광섬유 케이블, 무선망을 통해 전송된다.

암호화 및 공개 키

암호화는 인터넷에서 통신을 안전하게 보호하는 요소다. 인터넷은 공개된 시스템이므로 공유된 연결을 통해 정보를 주고받지만, 신용카드 번호, 은행 정보, 암호 등 비공개로 교환해야 할 데이터가 많다.

어떻게 해야 비공개 정보를 안전하게 지킬까?

비공개 정보를 안전하게 지키는 방법은 암호화(Encryption)를 이용하는 것이다. 암호화는 원래의 메시지를 읽을 수 없게 바꾸는(스크램블링) 과정이고, 해독(Decryption)은 그 메시지를 다시 읽을 수 있도록 되돌리는 과정이다.

가장 오래된 암호화 방법 중 하나는 시저 암호다. 이는 알파벳 순서를 바꿔서 메시지를 암호화하는 방식이다. 하지만 가능한 모든 키를 시도해보면 쉽게 해독할 수 있다는 문제가 있다.

대칭 암호화

보내는 사람과 받는 사람이 동일한 키를 공유하여 메시지를 변환하고 해석한다. 양측이 미리 비밀리에 키에 동의해야 해서, 공개된 인터넷에서는 적합하지 않다.

비대칭 암호화

public-private-key
public-private-key

그래서, 인터넷은 누구와도 교환할 수 있는 공개 키(Public Key)와 공유되지 않는 비공개 키(Private Key)를 사용한다.

이 비대칭 암호화 방식은 SSL 및 TLS 같은 보안 프로토콜을 포함하여 웹 탐색 사용자를 보호하는 기초 기술이다. 웹 브라우저 주소창의 자물쇠는 컴퓨터가 공개 키 암호화로 데이터를 보호하고 있다는 의미다.

사이버 보안, 범죄

사이버 보안은 네트워크, 기술 장치, 인터넷을 사용하여 범죄 활동에 대한 보호 조치를 의미한다.

바이러스

일반적으로 실수로 설치되어 사용자와 컴퓨터에 해를 끼치는 실행 프로그램이며, 다른 컴퓨터로 확산될 수도 있다.

바이러스는 어떻게 컴퓨터에 침투할까?

바이러스는 보안 업데이트처럼 위장하거나 소프트웨어의 취약점을 이용해 침투한다.

DDOS(Distributed Denial Of Service)

해커가 컴퓨터 바이러스를 이용해 수백만 대의 컴퓨터를 장악하고, 봇넷(Botnet)이라는 디지털 군대를 만들어 특정 웹사이트에 대량의 요청을 보내 서비스를 마비시키는 공격이다.

DDOS, 즉 분산 서비스 거부는 웹사이트에 해커들이 많은 요청을 보내 웹사이트가 서비스를 못하게 막는 것이다.

대부분의 웹 사이트는 하루에 수백만 건의 요청에 응답할 준비가 돼있긴 하지만, 다른 곳으로부터 수십억 또는 수 조 건의 요청을 받으면 컴퓨터가 과부하로 응답하지 않는다.

피싱(Phishing)

신뢰할 수 있는 이메일처럼 위장하여 링크 클릭을 유도하고, 가짜 웹사이트로 이동시켜 로그인 정보, 자격 증명 등을 훔치는 사기 수법이다.

그래서 보호하기 위해 어떤 조치를 해야할까?

회사나 정부 기관이 인터넷을 더 안전하게 만들기 위해 노력하지만, 해킹의 90%는 보안 버그가 아닌 사람의 단순한 실수 때문에 발생한다.


Share this article with your friends

Bluesky XformerlyTwitter LinkedIn Reddit
프로필 이미지

frndhoon

친근함으로 연결하는, 프론트엔드 개발자