seegongsik
네트워크

어떻게 이름을 주소로 바꿔 주는 DNS

친구 전화번호를 모두 외우는 사람은 드물다. 대개는 연락처에서 이름으로 찾는다. 인터넷도 마찬가지예요. 컴퓨터는 숫자 주소로 서로를 찾지만 사람이 그 숫자를 외우기는 어렵다. 그래서 우리는 외우기 쉬운 이름을 쓰고, DNS가 그 이름을 숫자 주소로 바꿔 준다.

01

이름이 숫자보다 외우기 쉽다

앞에서 컴퓨터는 숫자 주소로 서로를 찾는다고 배웠다. 그런데 그 숫자를 사람이 외우기는 무척 어렵다.
전화번호를 다 외우는 대신 이름으로 찾는 것처럼, 우리는 숫자 대신 외우기 쉬운 이름을 쓴다. 웹 주소창에 치는 그 이름을 도메인이라고 불러요.

두 카드를 눌러 비교해봐요

이름 카드와 숫자 주소 카드를 눌러 견준다. 이름은 한눈에 들어오고 숫자는 금세 헷갈려서, 어느 쪽이 외우기 쉬운지 바로 느낄 수 있어요.

이름은 한 번 보면 기억에 남지만 숫자는 금세 헷갈린다. 사람은 이름을 쓰고 싶고, 컴퓨터는 숫자가 필요하다. 둘이 바라는 것이 서로 다른 셈이에요.
그렇다면 누군가가 이름을 숫자로 바꿔 줘야 한다. 그 일을 하는 것이 바로 DNS다.

02

DNS에게 이름을 묻는다

이름으로 어딘가에 가고 싶을 때, 컴퓨터는 먼저 DNS에게 '이 이름의 숫자 주소가 뭐야?' 하고 묻는다. 그러면 DNS가 '그 이름의 주소는 이거야' 하고 알려 준다.
전화번호 안내에 이름을 대면 번호를 알려 주는 것과 같아요. 이렇게 이름으로 주소를 찾아내는 일을 조회라고 한다.

내 컴퓨터DNS
이름을 눌러 DNS에게 물어봐요

이름을 하나 누르면 내 컴퓨터가 DNS에게 질문을 보내고, 그 이름의 숫자 주소가 답으로 돌아와요.

질문을 보내자 주소가 또박또박 돌아왔다. 우리는 이름만 알았는데 컴퓨터가 쓸 숫자가 손에 들어온 것이다.
이제 그 숫자 주소로 진짜 연결을 시작할 수 있어요. 그런데 DNS는 그 많은 이름과 주소를 대체 어디에 적어 두고 있을까?

03

DNS는 거대한 전화번호부다

DNS는 이름과 주소의 짝을 아주 많이 적어 둔 목록과 같다. 전화번호부를 떠올리면 쉽다. 이름이 죽 적혀 있고 그 옆에 주소가 나란히 있다.
이름을 물으면 DNS는 목록에서 맞는 짝을 찾아 주소를 꺼내 준다. 그래서 우리는 이름만 대면 돼요.

DNS 번호부 (이름 → 주소)
이름을 눌러 주소를 찾아봐요

번호부에서 이름을 하나 누르면 맞는 줄이 빛나며 그 이름의 숫자 주소를 보여 준다. 이름마다 주소가 하나씩 짝지어 있어요.

다만 실제 DNS는 한 권짜리 책이 아니다. 온 세상의 이름이 너무 많아서, 전 세계의 수많은 서버가 목록을 나눠 맡는다.
맨 위의 뿌리 서버는 닷컴 같은 끝 이름을 맡은 서버를 알려 주고, 그 서버는 다시 그 이름의 주인이 운영하는 서버를 알려 준다. 이렇게 몇 번을 차례로 물어 마지막 답을 얻어요.
그런데 물어볼 때마다 매번 처음부터 이 길을 밟으면 느릴 것이다. 그래서 똑똑한 방법이 하나 있다.

04

한 번 찾으면 기억해 둔다

한 번 찾은 이름과 주소는 잠깐 적어 두는 것이 똑똑하다. 이렇게 기억해 두는 것을 캐시라고 한다.
같은 이름을 다시 찾을 때는 먼 번호부까지 가지 않아도 된다. 바로 옆에 적어 둔 기억에서 곧장 주소를 꺼내기 때문이에요. 그래서 두 번째부터는 훨씬 빠르게 연결된다.

내 컴퓨터기억(캐시)비어 있어요거대한 번호부
같은 이름을 두 번 조회해봐요

같은 이름을 두 번 조회한다. 처음에는 번호부까지 다녀와서 느리고, 두 번째에는 기억에 적어 둔 주소를 곧장 꺼내서 빨라요. 기억 비우기를 누르면 다시 처음부터 찾는다.

두 번째 조회가 눈에 띄게 빨랐다. 번호부까지 가지 않고 기억에서 바로 꺼낸 덕분이다.
물론 기억은 잠깐만 남는다. 주소가 바뀔 수도 있어서 너무 오래 믿으면 안 되기 때문이에요. 얼마 동안 기억해도 되는지는 그 이름의 주인이 정해 둔다.
그래도 그 짧은 사이에 기억 덕분에 인터넷이 더 빨라진다.

05

정리

한 줄로 모으면 이렇다. 사람은 이름을, 컴퓨터는 숫자를 쓰고, DNS가 이름을 숫자 주소로 바꿔 준다.
DNS는 짝이 가득한 거대한 번호부와 같고, 한 번 찾은 것은 잠깐 기억해 두어 다음에는 더 빠르다. 덕분에 우리는 복잡한 숫자를 DNS에게 맡기고 이름만 기억하면 돼요.

1. 이름 vs 숫자
2. 이름을 DNS에 물어봐요
3. DNS = 거대한 번호부
4. 한 번 찾으면 기억(캐시)
단추를 눌러 핵심을 차례로 되짚어봐요

버튼을 누를 때마다 핵심이 하나씩 나타난다. (이름 vs 숫자 → DNS에 물어봐요 → 거대한 번호부 → 한 번 찾으면 기억) 네 가지가 다 나오면 정리가 끝나요.

이제 이름이 어떻게 숫자 주소로 바뀌는지 알았다. 주소를 손에 넣었으니 드디어 상대 컴퓨터에 데이터를 보낼 차례다.
그런데 패킷 몇 개가 길에서 사라지거나 순서가 뒤바뀌면 어떻게 될까? 다음 레슨에서는 빠짐없이, 순서대로 전하도록 챙기는 방법을 다뤄요.

한 줄 정리사람은 숫자 주소를 외우기 어렵다. 그래서 외우기 쉬운 이름(도메인)을 쓰고, DNS가 그 이름을 컴퓨터가 쓰는 숫자 주소로 바꿔 준다. DNS는 이름과 주소의 짝이 가득 든 거대한 전화번호부와 같아서, 이름을 물으면 주소를 알려 줘요. 게다가 한 번 찾은 이름은 잠깐 기억(캐시)해 두기 때문에, 같은 이름을 다시 찾을 때는 번호부까지 가지 않아 훨씬 빠르다. 덕분에 우리는 숫자 대신 이름만 기억하면 돼요.
← 네트워크
이 페이지가 도움 됐다면 후원하기