[응용 계층] 주소창에 www.google.com 입력하면 무슨일이 일어날까?
2025-06-17 14:20
![[응용 계층] 주소창에 www.google.com 입력하면 무슨일이 일어날까?](/images/posts/post7/image.png)
시작하기
지난 포스팅에서는 DNS가 어떤 역할을 하고, 왜 필요한지 간단히 알아보았다.
이번에는 우리가 브라우저에 www.google.com
같은 주소를 입력했을 때 실제로 어떤 일이 일어나는지를 DNS 구조를 중심으로 자세히 살펴보자.
DNS 구조 이해하기
DNS는 도메인 이름을 IP 주소로 바꾸기 위해 DNS 서버(네임 서버)가 계층적으로 연결되어 있고, 클라이언트는 이 서버들에 질의(Query) 를 보내 원하는 IP 주소를 받아온다.
✔ Name Server란?
- Name Server는 DNS 요청에 응답하는 서버이다.
- 각 네임 서버는 자신이 관리하는 도메인 이름과 그것에 매핑된 IP 주소 정보를 가지고 있다.
예를 들어, example.com
도메인을 담당하는 네임 서버가 있고, 그 서버는 192.5.6.30
이라는 IP 정보를 가지고 있을 수 있다.
만약 어떤 네임 서버가 특정 도메인의 정보를 모른다면, 다음 단계의 네임 서버 주소(IP) 를 알려준다.
이렇게 네임 서버들은 트리 구조를 이루고 있으며, 최상위(root) 부터 점점 더 구체적인 하위 도메인으로 탐색을 이어간다.
DNS 조회 과정 (DNS Lookup)
다음은 www.google.com
을 입력했을 때 브라우저가 어떻게 IP 주소를 찾아가는지에 대한 과정이다.
단계적으로 알아보자.
1. 사용자 컴퓨터(클라이언트)에서 DNS 질의 시작

브라우저에 www.google.com
입력하면 컴퓨터가 IP 주소가 필요하기 때문에 DNS 조회를 시작한다.
내 컴퓨터의 Stub Resolver가 실행돼서 먼저 로컬 DNS Resolver로 요청을 보낸다.
2. 로컬 DNS 서버에 질의

로컬 DNS 서버의 캐시에 해당 도메인 이름에 대한 IP가 있으면 바로 응답해준다.
하지만 없다면, 최상위 DNS 서버(Root DNS) 로 질의를 전달한다.
3. Root 네임 서버에 질의

Root 네임 서버는 .com
, .net
등의 최상위 도메인(TLD) 을 담당하는 네임 서버의 IP 주소를 알려준다.
예를 들어 google.com
에서 최상위 도메인은 .com
이기 때문에
Root 서버는 .com TLD 서버
에게 물어보라고 IP 주소를 알려준다.
4. TLD(.com) 네임 서버에 질의

로컬 DNS 서버는 받은 .com
네임 서버에 google.com
의 IP를 아는지 물어본다.
.com
네임 서버는 해당 도메인을 관리하는 Authoritative Name Server 인 google.com
네임 서버의 주소를 알려준다.
5. google.com 네임 서버에 질의

로컬 DNS 서버는 받은 google.com
네임 서버에 주소를 물어보고,
해당 권한 네임 서버가 최종 IP 주소를 응답한다.
6. 로컬 DNS 서버가 클라이언트에 IP 주소 전달

로컬 DNS 서버는 이 IP 주소를 캐시에 저장하고, 클라이언트의 Stub Resolver에 전달한다.
Stub Resolver는 이 IP 주소를 브라우저에 넘겨주며, 브라우저는 해당 IP로 실제 웹서버에 접속하게 된다.
Stub Resolver 와 Recursive Resolver

Stub Resolver
- 로컬 컴퓨터에 있는 DNS 클라이언트로,
- 도메인 이름을 IP 주소로 바꾸기 위해 DNS 서버에게 요청만 보내는 간단한 역할을 한다.
- 보통 운영체제 안에 있으며, 오직 하나의 서버에만 연락해서 결과만 받아온다.
Recursive Resolver
- 실제로 DNS 조회를 수행하는 강력한 서버이다.
- Stub Resolver로부터 요청을 받으면,
Root → TLD → Authoritative Name Server
순서로 재귀적으로 탐색한다. - 예:
- ISP(KT, LG U+, SK)
- Google DNS(8.8.8.8)
- Cloudflare DNS(1.1.1.1)
💭 그렇다면 Recursive Resolver는 어떻게 알 수 있을까?
1. 네트워크 자동 설정
- Wi-Fi나 이더넷에 처음 연결될 때, DHCP가 DNS 주소도 같이 전달해준다.
- 즉, ISP나 회사 네트워크가 운영하는 로컬 recursive resolver를 사용하게 됨.
- 예: KT, LG U+, SK 등이 자동으로 DNS 주소를 전달함.
2. 사용자가 직접 설정
- Public Resolver를 직접 설정할 수도 있다.
- 대표적인 Public DNS:
- Google:
8.8.8.8
,8.8.4.4
- Cloudflare:
1.1.1.1
,1.0.0.1
- Google:
Recursive Resolver의 캐싱 (Caching)
- 여러 사용자들의 요청을 처리하다 보면,
자주 쓰이는 도메인의 IP 주소를 미리 캐싱해둔다. - 예전에 누군가
www.google.com
을 먼저 요청했다면,
다음 요청 시 DNS 서버에 다시 물어보지 않고 캐싱된 데이터로 빠르게 응답할 수 있다.
요약
-
사용자가 주소를 입력하면, PC의 Stub Resolver 가 로컬 DNS 서버(Recursive Resolver) 에 요청하고, 서버는
Root → TLD → 권한 네임서버
순으로 IP를 찾아 응답한다. -
이 과정은 트리 구조로 되어 있으며, 로컬 DNS 서버의 캐시를 통해 더 빠르게 처리될 수 있다.