지난 글에서는 애플리케이션 계층의 TCP와 UDP의 소켓 프로그래밍에 대해 정리하였다.
이번에는 Domain Name System이라고 알려져있는 DNS에 대해 정리해보고자 한다.
DNS (Domain Name System)
우리는 DNS를 익히 알고 있다. DNS라는 명칭은 몰라도 매일 마주한다.
예를 들어서 우리는 브라우저에 google.com 같은 주소를 입력한다.
하지만 컴퓨터는 0과 1로 이루어진 형태만 이해할 수 있지 이러한 문자 형태의 주소는 이해할 수 없다.
컴퓨터는 IP 주소라고 하는 형태만 이해 가능하다.
그렇다면 우리는 아래와 같은 의문이 생기게 된다.
사람이 이해하는 주소를, 컴퓨터가 이해하는 주소로 누가 바꿔주는 걸까?
이 역할을 하는 것이 DNS이다.
DNS(Domain Name System)는 도메인 이름을 IP 주소로 변환해주는 시스템이다.
예를 들어서
- www.google.com → 142.250.xxx.xxx
이 변환 과정을 통해서 우리는 복잡한 숫자를 외울 필요 없이 인터넷을 사용할 수 있다.
DNS가 필요한 이유
인터넷에는 수많은 장치들이 존재한다.
각 장치는 두 가지 방식으로 나누어 볼 수 있다.
- 사람이 사용하는 이름 → www.google.com
- 컴퓨터가 사용하는 주소 → IP 주소
사람은 기억하기 쉬운 이름을 선호하고,
컴퓨터는 처리하기 쉬운 숫자(IP)가 필요하다.
DNS가 중앙집중 방식(centralize)이 아닌 이유
하나의 서버에서 전부 관리하면 편하겠지만, 단점이 훨씬 많다.
- 단일 장애 지점 (서버 하나가 죽으면 전체 인터넷에 영향이 간다.)
- 트래픽 과부하
- 물리적 거리 문제
- 유지보수의 어려움
이러한 이유로 인해 DNS는 분산 구조(혹은 계층 구조)로 설계된다.
DNS의 구조
DNS는 트리 형태의 계층 구조를 가진다.

구조를 위에서부터 보면 다음과 같다.
- root (루트)
- TLD (Top Level Domain)
- Authoritative DNS
- 실제 도메인
사용한 주소는 다음과 같다. (가상의 주소를 예시로 작성함)
www.test.ac.kr
구조적으로 보면
- kr → 국가 도메인
- ac → 교육 기관
- test → 기관 이름
- www → 호스트 이름
점(.)을 기준으로 계층이 나뉨을 우리는 쉽게 알아볼 수 있다.
DNS 동작 방식
DNS는 주소를 한 번에 찾아갈 것이라고 생각할 수도 있지만 실제로는 단계적으로 찾아가는 방식이다.
www.amazon.com의 IP를 찾는 과정을 예로 들어보겠다.
- 클라이언트 → Root DNS 서버 요청
- Root → .com 서버 알려줌
- .com → amazon.com 서버 알려줌
- amazon.com 서버 → 최종 IP 반환
위에서 아래로 내려가며 요청한 주소를 찾는다.
DNS 서버 종류
DNS는 여러 종류의 서버로 구성된다.
Root DNS 서버
- 가장 상위 계층
- 모든 질의의 시작점
TLD 서버
.com, .kr, .net 등을 담당한다.
Authoritative DNS 서버
여기에서는 실제 도메인의 IP 정보를 가지고 있다.
위의 3단계 구조로 인터넷을 전체 분산 관리한다.
Local DNS 서버
사용자가 실제로 가장 먼저 접속하는 서버는 사실 따로 있다.
제목에서 알 수 있듯이 Local DNS 서버이다.
- ISP(통신사) 또는 회사에서 제공
- 캐시 기능 수행
이미 조회한 도메인은 다시 빠르게 응답이 가능하게 된다는 것이다.
그러므로 실제로 root까지 매번 호출마다 가지는 않는다.
DNS 질의 방식
DNS는 두 가지 방식으로 동작한다.
- Iterative Query (반복 질의)
서버가 직접 답을 주지 않고 다음 서버의 위치만 알려준다. - Recursive Query (재귀 질의)
서버가 끝까지 찾아서 결과를 반환해준다.


DNS 캐싱 (Caching)
DNS는 성능 향상을 위하여 캐싱을 사용한다.
- 한 번 조회한 결과를 저장한다.
- 일정 시간 (TTL) 이후에는 삭제한다.
장점
- 속도 향상
- 트래픽 감소
단점
- 최신 정보가 아닐 수 있다.
DNS 레코드
DNS는 다양한 정보를 저장한다.
형식은 아래와 같다.
(name, value, type, ttl)
대표적인 레코드
- A: 도메인 → IP 주소
- NS: 네임서버 정보
- CNAME: 별칭
- MX: 메일 서버
여기서 주목할 점은 DNS가 단순히 IP만 저장하는 것이 아니라는 것이다.
DNS는 인터넷에서 매우 기본적인 요소이지만, 내부 구조는 생각보다 상당히 복잡하다.
이번 글의 핵심은
이름을 IP로 바꿔주는 것이 DNS 라는 것이다.
'CS > Computer Network' 카테고리의 다른 글
| [컴퓨터네트워크/Computer Network] 네트워크 기술 LAN, MAN, WAN (2) (0) | 2026.05.07 |
|---|---|
| [컴퓨터네트워크/Computer Network] 네트워크 기술 LAN, MAN, WAN (1) (0) | 2026.05.07 |
| [컴퓨터네트워크/Computer Network] 신뢰적인 데이터 전송 원리 완벽 정리 (rdt 1.0 ~ 2.2) (0) | 2026.05.05 |
| [컴퓨터네트워크/Computer Network] 파일 분배 : client-server vs. P2P (0) | 2026.04.20 |
| [컴퓨터네트워크/Computer Network] 소켓 프로그래밍이란? (1) | 2026.04.12 |