스킬캠퍼스

오늘 끝나면

인터넷의 탄생

  • 인터넷의 탄생의 핵심 문제를 한 문장으로 설명한다
  • 오른쪽 실습에서 인터넷의이 어떻게 움직이는지 관찰한다
  • 다음 강의와 이어지는 한계를 말할 수 있다

실습 미션

1969 아파넷 — 컴퓨터끼리 선으로 잇다. 패킷과 IP 이 문장이 실제로 무슨 뜻인지 실습에서 한 번 손으로 확인한다.

성공 조건

  • 실습의 기본값을 먼저 관찰
  • 입력값이나 모드를 한 번 이상 바꿔 결과 비교
  • 왜 결과가 바뀌었는지 한 문장으로 설명

개발 · Day 8 / 인터넷 · 웹

컴퓨터끼리
선을 잇다

이제 컴퓨터끼리 연결한다. 1969년 아파넷이 그 시작이다. 글을 통째로 보내지 않고 조각내 보내는 것이 핵심이다.

P.01개발 · Day 8

왜 망을 만들었나

냉전기 미국은 핵폭격을 맞아도 죽지 않는 통신망이 필요했다.

옛 전화망은 중앙 교환소에 다 걸려 있어, 그곳 하나만 끊기면 통신이 통째로 죽는다. 그래서 미 국방부가 돈을 댔다.

1969년 ARPANET이 켜졌다. 대학 컴퓨터 4대를 선으로 이은 것이 전부였다. 첫 메시지는 LO였다. "LOGIN"을 치다 두 글자 만에 시스템이 죽었지만, 컴퓨터끼리 처음 말을 건 순간이었다.

답은 중앙 없는 그물망이다. 어디가 끊겨도 다른 길로 돌아가면 된다. 이것이 오늘날 인터넷의 DNA다.

1969 · ARPANET
UCLASRIUCSBUTAH우회로

대학 컴퓨터 4대로 만든 중앙 없는 그물망, 한 선이 끊겨도 우회한다

P.02개발 · Day 8

글을 조각내 보낸다

핵심 아이디어는 패킷 교환이다. 보낼 데이터를 작은 조각으로 쪼개 보내는 방식이다.

옛 전화는 회선 교환이다. 통화하는 동안 두 사람 사이 선 하나를 통째로 잡아둔다. 말을 하지 않아도 선은 계속 점유돼 낭비가 크다.

패킷 교환은 글을 여러 조각(패킷)으로 쪼갠다. 각 조각에 받는 사람 주소를 붙이고, 조각은 제각각 다른 길로 가도 된다. 도착하면 번호 순서대로 다시 합친다.

그래서 선 하나를 여러 사람이 나눠 쓴다. 한 길이 막히면 다른 길로 돌아가니 끊기지 않는다.

패킷 교환 vs 회선 교환
회선 교환: 선 하나 통째로 잡는다점유됨패킷 교환: 조각내 여러 길로 보낸다123도착 후 1·2·3 순서대로 다시 합친다

선을 통째로 잡는 대신, 조각내 나눠 보내고 도착해 합친다

P.03개발 · Day 8

라우터가 길을 찾는다

패킷은 한 번에 목적지까지 안 간다. 라우터라는 중간 우체국을 여러 번 거친다.

라우터는 패킷에 적힌 주소를 보고 더 가까운 쪽을 판단해 다음 라우터로 넘긴다. 이 한 칸 이동을 홉(hop)이라 한다. 목적지까지 보통 여러 홉을 거친다.

라우터를 눌러 고장 내면 패킷이 즉시 다른 길로 돌아간다. 길 하나가 죽어도 망 전체는 멀쩡하다. 1969년 군이 원했던 바로 그 성질이다.

코드 보기
# 죽은 라우터를 피해 최단 경로 찾기 (BFS)
def find_path(dead):
    q = ["나"]
    prev = {"나": None}
    while q:
        cur = q.pop(0)
        for nxt in neighbors(cur):
            if nxt in dead: continue
            if nxt not in prev:
                prev[nxt] = cur
                q.append(nxt)
    return trace(prev, "친구")
패킷 라우팅 실험
패킷 교환 실험실 · 글을 쪼개 라우터 망으로 보낸다
라우터를 눌러 고장 내 본다
보낼 글
HELLO
패킷 수
5
거친 라우터
2홉
길을 찾았다, 나 → R1 → R3 → 친구
라우터 하나가 꺼져도 다른 길로 돌아간다, 핵폭격에도 안 죽는 망이 목표였다
P.04개발 · Day 8

IP, 인터넷의 집주소

라우터가 길을 찾으려면 "어디로 보낼지"가 필요하다. 그 주소가 IP다.

IP는 Internet Protocol의 줄임말이다. 인터넷에 연결된 모든 기기에 고유 번호가 붙는다. 집집마다 도로명 주소가 있는 것과 같다.

예전 방식(IPv4)은 142.250.207.46처럼 점으로 나뉜 숫자 넷이다. 각 칸은 0~255 사이다. 이 주소만 알면 지구 반대편 컴퓨터에도 패킷을 보낸다.

숫자는 외우기 어렵다. 그래서 google.com 같은 이름을 IP로 바꿔주는 장치가 따로 있다. 인터넷의 전화번호부인 DNS다.

IP 주소 구조
IP 주소 (IPv4)142.0–255250.0–255207.0–255460–255google.com 을 DNS 가 위 숫자로 바꾼다이름은 외우기 쉽고, 숫자는 라우터가 길 찾기 쉽다

모든 기기에 붙는 고유 번호, 인터넷의 도로명 주소다

P.05개발 · Day 8

인터넷 = 망들의 망

인터넷은 망들의 망이다. 작은 망 수없이 많은 것을 또 이은 것이다.

집 와이파이, 회사 망, 카페 망, 통신사 망이 다 따로 있다. 이 망들을 또 서로 이은 거대한 그물이 인터넷이다. "인터넷 (inter-net)" 이름 자체가 "망과 망 사이"라는 뜻이다.

그래서 인터넷엔 주인이 없다. 약속(프로토콜)만 지키면 누구든 자기 망을 붙인다. 이 개방성이 인터넷을 폭발적으로 키웠다.

Q. 인터넷과 웹은 같은 말인가?아니다. 인터넷은 컴퓨터를 잇는 망 자체다(이번 챕터). 웹은 그 망 위에서 돌아가는 한 가지 서비스다. 링크로 이어진 문서들이다(다음 챕터). 이메일과 영상통화도 인터넷 위에 있지만 웹은 아니다. 인터넷이 도로라면 웹은 그 위를 달리는 한 종류의 차다.
NETWORK OF NETWORKS
집 망회사 망카페 망망 + 망 + 망 = 인터넷

작은 망들을 또 이은 거대한 그물, 주인 없는 개방형 망이다

3줄 요약

  1. 11969 아파넷 — 컴퓨터끼리 선으로 잇다. 패킷과 IP
  2. 2인터넷의 탄생은 코딩 기본 → 인터넷과 웹 → 프론트/백엔드 → 데이터 → 배포 흐름 안의 한 칸이다.
  3. 3개념을 외우는 것보다 입력을 바꾸면 무엇이 달라지는지 보는 것이 우선이다.

완료 전 점검

복습 카드

인터넷의

1969 아파넷 — 컴퓨터끼리 선으로 잇다. 패킷과 IP

입력

프로그램이 받아들이는 값이나 사용자 행동

규칙

입력을 처리하는 코드의 절차