DNS(Domain Name System) 알아보기 (1) : 도메인 네임

2026. 4. 16. 21:20네트워크/응용계층

도메인 네임과 네임 서버

 

네트워크상의 어떤 호스트를 특정할 때 IP 주소를 쓴다. 하지만 실제로 사용할 때는 IP 주소만으로는 한계가 있다. 통신하고자 하는 모든 호스트의 IP 주소를 기억하고 있기도 어렵고, 호스트의 IP 주소는 언제든 바뀔 수 있기 때문이다. 

 

그래서 일반적으로 사용자는 상대 호스트를 특정하기 위해 도메인 네임(Domain Name)을 많이 사용한다. 도메인 네임은 호스트의 IP 주소와 대응되는 문자열 형태의 호스트 특정 정보다. 예를들어 www.example.com, developers.naver.com, git.kernel.org와 같은 문자열이 도메인 네임이다. 

 

IP 주소를 전화번호에 비교하면 도메인 네임은 전화번호에 대응하는 사용자 이름과 같다. '사용자 이름 : 전화번호' 쌍의 목록을 전화번호부에 모아서 관리하는 것처럼, 도메인 네임과 IP 주소는 네임 서버(Name Server)에서 관리한다. 네임서버는 DNS 서버라고도 부른다. 

 

네임 서버는 호스트의 도메인 네임과 IP 주소를 모아 관리하는 '공용' 전화번호부와 같은 역할을 한다. 다음 그림처럼 도메인 네임을 네임 서버에 질의하면 해당 도메인 네임에 대한 IP 주소를 알려주는 방식으로 IP 주소를 알아낼 수 있다.

💡반대로 IP 주소를 통해 도메인 네임을 알아내는 것도 가능하다.

 

도메인 네임은 IP 주소에 비해 기억하기 쉬울뿐더러, IP 주소가 바뀌더라도 바뀐 IP 주소에 도메인 네임을 다시 대응하면 되기에 IP 주소만으로 호스트를 특정하는 것보다 더 간편하다. 

 

그렇다면 네임 서버는 어떻게 관리하면 좋을까? 그리고 몇 개가 있어야 충분할까? 이는 도메인 네임의 구조를 통해 알 수 있다. 아래의 예시처럼된 도메인 네임이 있다고 가정해보자.

www.example.com

 

도메인 네임은 점(.)을 기준으로 계층적으로 분류된다. 최상단에 루트 도메인(root domain)이 있고, 그 다음 단계인 최상위 도메인(TLD:Top-Level Domain)이 있으며, 계속 그 다음 단계의 도메인이 있는 식이다.

도메인의 계층적 구조

 

일반적으로 알고있는 도메인 네임의 마지막 부분을 최상위 도메인, 줄여서 TLD라고 한다. 예를 들어 'www.example.com'의 최상위 도메인은 'com'이다. 최상위 도메인의 종류는 다양하지만 대표적으로 com, net, org, kr(대한민국), jp(일본), cn(중국), us(미국) 등이 있다. doctor, lawyer, company와 같은 색다른 최상위 도메인도 존재한다. 

 

흔히 최상위 도메인을 도메인 네임의 마지막 부분이라고 생각하기 쉽지만, 사실 루트 도메인도 도메인 네임의 일부다. 루트 도메인은 점(.)으로 표현되며 도메인 네임의 마지막에 점이 찍힌 형태로 표기된다. 일례로 웹 브라우저에서 'www.google.com.'과 같은 도메인 네임으로 접속해도 사이트에 접속이 잘된다. 다만 일반적으로는 루트 도메인을 생략해서 표기하기에 대게 최상위 도메인을 '도메인 네임의 마지막 부분'으로 간주한다. 

 

최상위 도메인의 하부 도메인은 2단계 도메인(second-level-domain)이라고 한다. 영어로 세컨드 레벨 도메인이라 부르는 경우가 많다. 예를들어 'www.example.com'에선 'example'이 2단계 도메인이다. 

 

나아가 'www.example.com'에서 'www'는 3단계 도메인이다. 도메인의 단계는 이보다 더 늘어날 수도 있지만, 일반적으로는 3~5단계 정도다. 그리고 'www.example.com.' 처럼 도메인 네임을 모두 포함하는 도메인 네임을 전체 주소 도메인 네임(FQDN:Fully-Qualified Domain Name)이라고 한다. 

 

'example.com' 같은 도메인 네임에 추가적으로 도메인을 붙여 호스트를 다시 구분지을 수 있다. 'mail.example.com', 'api.example.com', 'www.example.com' 과 같이 말이다. 이러한 도메인들을 서브 도메인(subdomain)이라 부른다.

 

위 예시의 3단계 도메인, mail, api, www 과 같은 도메인은 같은 구역내의 특정 호스트를 직접 지칭하는 뜻과 같다. mail은 'example.com' 내의 '메일 서버', api는 'API 서버', www는 '웹 서버'라는 뜻인거다. 이런점에서 FQDN의 첫 번째 부분을 호스트 네임(host name)이라고 부르기도 한다. 

 

도메인 네임은 이처럼 계층적인 형태를 띈다. 이런 도메인 네임을 효율적으로 관리하기 위해 네임 서버 또한 계층적인 형태를 이룬다. 네임 서버는 여러 개 존재하며 전 세계 여러 군데에 위치해 있다. 이렇게 계층적이고 분산된 도메인 네임에 대한 관리 쳬계를 도메인 네임 시스템(Domain Name System), 줄여서 DNS라고 부른다. DNS는 호스트가 이러한 도메인 네임 시스템을 이용할 수 있도록 하는 응용 계층의 프로토콜을 의미하기도 한다. 

 

정리

 

도메인 네임과 네임 서버

1. 개요 : 네트워크의 '전화번호부'

  • 도메인 네임(Domain Name) : 숫자로 된 복잡한 IP 주소(123.456.78.9) 대신 사람이 이해하기 쉬운 문자열('www.google.com')을 사용하는 것.
  • 네임 서버(Name Server) : "이 도메인의 IP는 뭐야?"라는 질문에 답해주는 DB 서버. 흔히 DNS 서버라 불림.
  • 장점 : IP 주소는 서버 이전이나 점검에 따라 바뀔 수 있으나, 도메인은 고정임. 네임 서버에서 값만 바꿔주면 사용자는 똑같은 도메인 네임으로 계속해서 접속할 수 있음. 

2. 도메인 네임의 계층적 구조 : '오른쪽에서 왼쪽으로'

  • 도메인은 오른쪽으로 갈수록 범위가 넓어지는 트리 구조를 가짐.
  • 루트 도메인(Root Domain) : 모든 도메인의 시작점. 주소 끝에 점(.)이 루트 도메인이나, 보통 생략됨. 
  • TLD(Top-Level Domain) : .com(상업), .org(기관), .kr(국가) 등 대분류. 
  • SLD(Second-Level Domain) : naver, google 처럼 실제 조직의 이름. 돈을 주고 사는 구간이 이 구간임. 
  • Host Name (Subdomain) : www(웹), mail(메일), api(인터페이스) 등 특정 기능/서버를 지칭함. 
  • FQDN (전체 주소 도메인) : 'www.naver.com.' 처럼 호스트부터 루트까지 생략없이 다 쓴 주소.

3. 서브 도메인 

  • 독립된 공간 : 'blog.example.com'과 'shop.example.com'은 아예 다른 물리 서버나 다른 기술 스택을 써도 무방함.
  • 운영의 묘미 :
    • 지역 분산 : 'kr-api.domain.com'은 한국 서버로, 'us-api.domain.com'은 미국 서버로 연결해서 속도를 높일 수 있음.
    • 환경 분리 : dev(개발), staging(검수), prod(운영) 등으로 나누어 안전하게 개발 가능.

4. DNS

  • DNS는 단순히 서버 한대를 가르키는 것이 아닌, 전 세계에 흩어진 네임 서버들이 협력하는 거대한 분산 데이터 베이스 체계임.
  • DNS 질의 과정 :
    1. 브라우저 : "네임서버야, 'www.naver.com' IP 뭐야?"
    2. 네임 서버 : "잠깐만, 루트(.)한테 물어볼게" → "루트야, .com 어디 있어?"
    3. 루트 : "나 모르는데? 대신 .com 관리자 주소 알려줄게."
    4. 네임 서버 : ".com 관리자야, 'naver.com' 어디 있어?"
  • 위 과정처럼 단계를 밟아 내려가서 최종 IP를 찾아오는 과정을 거침.

5. 추가로 알면 좋은점

  • A 레코드 : 도메인을 IPv4 주소에 직접 매칭하는 것.
  • AAAA 레코드 : 도메인을 IPv6 주소에 직접 매칭하는 것.
  • CNAME(Canonical Name) : 도메인을 다른 도메인에 별명으로 연결하는 것. (예: 'web.me.com' 접속 시 'www.me.com'으로 보냄.)
  • TTL : 사용자가 접속할 때마다 네임 서버에 질의를 하게되면 서버의 부하가 심해짐. 그래서 한 번 물어본 주소는 사용자의 컴퓨터나 통신사의 네임 서버의 캐시에 저장해둠. 이 캐시에 얼마나 오랫동안 저장해둘 지 결정하는 시간. 시간이 길면 서버 IP 주소 변경시 반영 시간이 길어 접속이 일시적으로 불가능할 수도 있음.