[응용계층] DNS 정의와 역할
2025-06-17 14:11
1. 시작하기
우리가 네이버에 접속할 때, 인터넷 주소창에 www.naver.com 과 같은 주소를 입력하면 쉽게 접속할 수 있다.
이처럼 네이버의 IP 주소를 외우지 않아도 도메인 주소만으로 접근할 수 있는 이유는, 사람이 기억하기 쉽게 만든 도메인 이름을 실제 서버의 IP 주소로 변환해주는 시스템이 있기 때문이다.
이 시스템을 DNS(Domain Name System) 이라고 한다.
DNS가 무엇이고, 어떻게 동작하는지, 그리고 왜 필요한지를 간단히 알아보자.
2. DNS 정의
📌 IP 주소
- 네트워크 상의 호스트(컴퓨터, 서버 등)를 식별하기 위해 사용되는 고유한 숫자 주소
- 예)
223.123.123.123
📌 도메인 네임 (domain name)
- 사람이 이해하기 쉽게 만든 문자 형태의 주소
- 예)
www.google.com
📚 DNS 란?
📖 DNS 는 전화번호부와 같은 역할을 한다.
DNS (Domain Name System) 는 도메인 네임을 IP 주소로 변환해주는 시스템이다.
전화번호부가 사람 이름을 전화번호로 찾아주듯이, DNS는 도메인 이름을 해당 서버의 IP 주소로 변환해준다.
단순히 IP 주소만 사용할 경우,
- 기억하기 어렵고
- 특정 서비스와 연결되어 있는지 알기 힘들며
- IP 주소는 변경될 수도 있기 때문에 불편하다.
이런 불편함을 해결하기 위해 사용하는 것이 도메인 네임(Domain Name) 이다.
도메인 네임은 예를 들어 www.google.com, www.naver.com처럼 사람이 이해하기 쉬운 문자열이며, 각각 특정 IP 주소와 대응된다.
이 매핑 정보를 관리하는 시스템이 바로 DNS 서버(DNS Server) 이며,
도메인 이름과 IP 주소의 정보를 저장하고 응답해주는 서버를 네임 서버(Name Server) 라고 부른다.
이러한 네임 서버는 전 세계에 분산되어 존재한다.
3. DNS 역사 및 배경
📜 hosts.txt 파일의 한계
초창기 인터넷에서는 각 컴퓨터에 hosts.txt라는 파일이 존재했고,
이 파일에 도메인 이름과 IP 주소를 수동으로 기록해서 사용했다.
하지만 네트워크가 점점 커지면서 다음과 같은 문제가 생겼다.
- 모든 사용자가 동일한 파일을 복사해서 사용해야 했고
- 도메인이 많아질수록 관리가 어려워졌으며
- 정보 변경이 느리고 충돌이 잦아지는 문제가 생겼다.
이러한 문제를 해결하기 위해 자동화되고, 분산된 방식으로 주소를 조회할 수 있는 시스템이 필요했고,
그 결과 탄생한 것이 바로 DNS이다.
4. DNS 동작 흐름
브라우저의 주소창에 www.naver.com을 입력하면, 어떤 과정을 거쳐 네이버 사이트에 접속하게 되는 것일까?
간단히 말하면 다음과 같은 순서로 진행된다.
- 사용자가 브라우저에
www.naver.com입력 - 컴퓨터(운영체제 또는 브라우저)는 DNS 서버에 도메인 이름에 대한 IP 주소를 질의(DNS Lookup)
- DNS 서버가 해당 도메인의 IP 주소를 응답
- 브라우저는 응답받은 IP 주소로 접속
DNS 서버는 도메인 이름에 해당하는 IP 주소를 찾아 응답해주는 역할을 하며,
이 과정은 마치 간단한 API 요청처럼 동작한다.
실제로는 대부분의 요청이 운영체제나 브라우저 캐시, 또는 로컬 DNS 서버(ISP 제공) 에 저장되어 있어 빠르게 처리된다.
5. DNS가 갖춰야 할 조건
1) 확장성 (Scalable)
- 인터넷에 수많은 호스트와 도메인이 있고,
- 조회와 업데이트 요청이 매우 많아서 이를 감당해 낼 수 있어야 한다.
2) 고가용성 (Highly Available)
- 어느 한 곳에 장애가 나도 DNS 전체가 멈추면 안 된다.
- 따라서 전 세계에 분산된 여러 개의 네임 서버가 필요하다.
3) 경량 / 속도 (Lightweight and Fast)
- 인터넷 연결 시 항상 DNS 조회부터 시작하기 때문에,
- DNS가 느리면 모든 연결이 느려지게 된다.
- 최대한 빠르게 이름을 IP로 변환해야 한다.
6. 요약
- DNS는 사람이 이해하기 쉬운 도메인 이름을 실제 서버의 IP 주소로 변환해주는 인터넷의 필수 시스템이다.
- DNS 덕분에 우리는 복잡한 숫자 주소(IP)를 외우지 않고도 원하는 웹사이트에 접속할 수 있다.
- 초기에는
hosts.txt같은 정적 방식이었지만, 현재는 자동화되고 분산된 DNS 시스템 덕분에 수많은 도메인과 서비스를 효율적으로 연결할 수 있게 되었다.
DNS가 어떻게 구성되어있고, 더 자세한 조회 과정은 다음 포스팅에 올릴 예정이다.