우리가 웹 브라우저 주소창에 www.google.com을 입력했을 때, 눈 깜짝할 사이에 구글의 홈페이지가 화면에 나타납니다. 이 간단한 행동 뒤에는 인터넷의 가장 중요한 시스템 중 하나인 DNS(Domain Name System)가 숨어 있습니다. DNS는 사람이 읽기 쉬운 도메인 이름(예: google.com)을 컴퓨터가 이해하는 IP 주소(예: 142.250.199.196)로 변환해주는 역할을 합니다. 이는 마치 전화번호부에서 사람의 이름을 찾아 전화번호를 알아내는 과정과 같습니다. 이 포스팅에서는 DNS의 동작 원리와 웹 접속 과정을 상세히 알아보겠습니다.
DNS의 계층 구조 이해하기
DNS는 전 세계적으로 분산된 서버들의 계층적 구조로 이루어져 있습니다. 이 구조 덕분에 하나의 중앙 서버에 모든 정보를 저장하지 않고도 수십억 개의 도메인 이름을 효율적으로 관리할 수 있습니다.
- 루트 DNS 서버 (Root DNS Server): 최상위에 위치하며, 전 세계에 13개의 논리적 서버가 존재합니다. 특정 도메인(예: .com, .net, .kr)을 관리하는 TLD 서버의 주소를 알고 있습니다.
- TLD(최상위 도메인) DNS 서버 (Top-Level Domain Server): .com, .net, .org, .kr 등 최상위 도메인을 관리합니다. 특정 도메인(예: google.com)의 실질적인 주소를 가진 Authoritative DNS 서버의 위치를 알려줍니다.
- Authoritative(권한 있는) DNS 서버: 특정 도메인(google.com)의 IP 주소 정보를 직접 가지고 있는 최종 서버입니다. 이 서버에 질의해야만 비로소 도메인에 대한 정확한 IP 주소를 얻을 수 있습니다.
웹 접속 과정 8단계: 상세 분석
사용자가 www.google.com을 입력하는 순간부터 실제 웹사이트가 화면에 나타나기까지의 전체 과정은 다음과 같습니다.
- 사용자 도메인 입력: 사용자가 웹 브라우저 주소창에 www.google.com을 입력합니다.
- 브라우저 캐시 확인: 브라우저는 가장 먼저 로컬에 저장된 캐시(Cache)를 확인합니다. 이전에 접속한 기록이 있다면 즉시 IP 주소를 찾아 접속합니다. 이는 가장 빠른 경로입니다.
- 로컬 DNS 서버(Recursive Resolver)에 질의: 캐시에 정보가 없다면, 브라우저는 ISP(인터넷 서비스 제공자)가 제공하는 로컬 DNS 서버(Recursive Resolver)에 IP 주소를 요청합니다. 로컬 DNS 서버는 사용자를 대신해 IP 주소를 찾아주는 역할을 합니다.
- 루트 DNS 서버에 질의: 로컬 DNS 서버 역시 캐시에 정보가 없다면, 전 세계 DNS 계층 구조의 최상위에 있는 루트 DNS 서버에 www.google.com의 IP 주소를 질의합니다.
- 루트 서버의 TLD 서버 주소 응답: 루트 서버는 .com 도메인을 담당하는 TLD 서버의 주소를 로컬 DNS 서버에 알려줍니다. 루트 서버는 모든 정보를 알지 못하지만, 다음 단계로 이동할 곳을 정확히 알고 있습니다.
- TLD 서버에 질의: 로컬 DNS 서버는 이제 루트 서버에게 받은 TLD 서버 주소로 이동하여 .com TLD 서버에 다시 www.google.com의 IP 주소를 질의합니다.
- TLD 서버의 Authoritative DNS 서버 주소 응답: TLD 서버 역시 IP 주소를 직접 가지고 있지는 않지만, google.com 도메인에 대한 최종 권한을 가진 Authoritative DNS 서버의 주소를 로컬 DNS 서버에 알려줍니다.
- Authoritative DNS 서버에 질의 및 최종 IP 주소 응답: 마지막으로, 로컬 DNS 서버는 Authoritative DNS 서버에 질의하여 www.google.com의 정확한 IP 주소를 얻어냅니다. 이 IP 주소(142.250.199.196)를 브라우저에 반환합니다.
- 브라우저의 웹 서버 접속: 브라우저는 이제 IP 주소를 통해 구글의 웹 서버에 접속하고, 서버는 HTML, CSS, JavaScript 파일을 반환하여 사용자의 화면에 구글 홈페이지를 렌더링합니다.
이 모든 과정은 밀리초(millisecond) 단위로 빠르게 진행되며, 로컬 DNS 서버는 한 번 알아낸 IP 주소를 일정 기간 캐시에 저장하여 다음번 접속 시에는 훨씬 더 빠르게 응답할 수 있습니다.
DNS 레코드 유형 (추가 지식)
DNS는 단순히 IP 주소만 관리하는 것이 아닙니다. 다양한 유형의 DNS 레코드를 통해 도메인과 관련된 여러 정보를 제공합니다.
- A Record (Address Record): 도메인 이름을 IPv4 주소에 매핑합니다.
- AAAA Record: 도메인 이름을 IPv6 주소에 매핑합니다.
- CNAME Record (Canonical Name): 도메인 이름을 다른 도메인 이름에 매핑합니다. 예를 들어 www.example.com을 example.com에 연결하는 데 사용됩니다.
- MX Record (Mail Exchange): 해당 도메인의 이메일 서버 주소를 지정합니다.
결론: 인터넷의 숨은 영웅, DNS
DNS는 우리가 인터넷을 사용하는 데 있어 없어서는 안 될 핵심 인프라입니다. 사용자는 복잡한 IP 주소를 외울 필요 없이 의미 있는 도메인 이름만으로 원하는 웹사이트에 접속할 수 있습니다. 수십억 개의 도메인과 IP 주소를 관리하는 분산된 시스템 덕분에, 인터넷은 빠르고 안정적으로 유지될 수 있습니다. DNS가 없다면 인터넷은 마치 전화번호부 없는 전화 시스템처럼 제 역할을 수행하지 못했을 것입니다.
'개발' 카테고리의 다른 글
API란 무엇인가? REST API와 GraphQL 비교 🤝 (3) | 2025.08.13 |
---|---|
인메모리 DB vs 디스크 기반 DB 🧠💾 (1) | 2025.08.12 |
ECR + Lambda + GitLab CI를 활용한 서버리스 함수 배포 자동화 가이드 🚀 (1) | 2025.08.12 |
gcp cloudbuild 와 cloud run job을 활용한 파이프라인 구축 (aws lambda와 비교) (1) | 2025.08.12 |
데이터 분석가 로드맵 2025: 비즈니스 문제를 해결하는 데이터 전문가 되기 🎯 (4) | 2025.08.11 |