본문 바로가기
코딩해보니/웹(Web)개발

도메인 네임과 DNS (Domain Name & Domain Name System)

by 위시랜 2024. 11. 23.

도메인 네임과 DNS (Domain Name & Domain Name System)
도메인 네임과 DNS (Domain Name & Domain Name System)

웹이 어떻게 동작하는지 이해하는 과정에서 IP(Internet Protocol)라는 것을 알았다.

IP는 인터넷상에서 컴퓨터가 가지는 고유한 주소라고 이해했고, https://wishlan.tistory.com이라고 브라우저에 입력하면 DNS에 IP 주소를 물어보고 찾아간다고 했다.

이 과정을 도메인과 DNS를 통해 조금 더 이야기해보고자 한다.


도메인 네임(Domain Name)이란?

인터넷에 연결되어 있는 장치(컴퓨터, 스마트폰, 태블릿, 서버, 자동차, 냉장고 등등)들은 고유한 주소를 가진다고 했는데 그 주소가 IP(Internet Protocol)이다.

그런데, IP는 숫자로 되어 있어서 전화번호도 외우는 게 쉽지 않은데 그 수많은 IP들을 어떻게 기억할 수 있겠는가? 그래서 도메인(domain)이라는 개념이 등장했다. 바로, 기억하기 쉽도록 IP에 이름을 부여하는 것이다. IP 주소에 문자로 부여한 이름을 도메인 네임(Domain Name)이라고 한다. 간단히 도메인이라고 얘기한다.

휴대전화 주소록에는 이름과 전화번호가 함께 등록되어 있을 것이다.

그래서 우리는 연락처를 검색할 때 이름으로 검색한다. 마찬가지로 IP에 이름을 부여할 수 있다.

 

만약 네이버 홈페이지가 있는 서버의 IP가 223.130.195.95라고 하면

https://223.130.195.95와 https://www.naver.com은 똑같이 네이버 홈페이지로 연결되는 것이다.

IP 주소와 도메인 주소
IP 주소와 도메인 주소


DNS (Domain Name System)

자신의 휴대폰에 연락처와 이름의 매칭 정보는 연락처 앱에 등록되어 있어서 연락처 앱을 실행하고 이름으로 검색하면 쉽게 찾을 수 있다. 카카오톡을 처음 설치하고 실행할 때에도 연락처에 등록된 정보를 바탕으로 친구 목록을 구성하게 된다. 연락처 정보가 기반이 되는 것이라 할 수 있다.

도메인 네임도 우리가(사람이) 잘 기억할 수 있도록 편의상 만들어진 주소이기 때문에 실제로 컴퓨터는 문자열을 이해할 수 없고 IP 주소가 필요하다. 그래서 도메인 네임을 IP 주소로 변환하는 과정이 필요하다. 이렇게 도메인 네임을 IP 주소로 변환하는 시스템이 Domain Name System(DNS)이다.

 

그래서, 인터넷상에서도 IP와 도메인 이름의 매칭 정보를 관리하는 곳이 있다. 당연히 있어야 한다.

IP 주소와 도메인 이름의 매칭 정보를 가지고 있는 서버를 DNS (Domain Name Server, 도메인 이름 서버)라고 부른다. 시스템이든 서버든 통칭해서 DNS라고 커뮤니케이션하게 된다.

 

이전 포스팅에서 이야기했지만 사용자가 브라우저에 http://www.naver.com 을 입력 후 네이버 홈페이지가 보이는 아래의 과정에서 DNS가 필요하다.

웹 동작 과정에서의 DNS 요청 과정
웹 동작 과정에서의 DNS 요청 과정

위 그림에서 DNS에 IP를 질의하고 응답을 받는 과정은 생각보다 복잡하다.
그 과정을 이해하려면 도메인 체계를 이해할 필요가 있다.


도메인 체계

DNS(Domain Name System, 도메인 네임 시스템)의 구성은 도메인 체계와 같다고 볼 수 있다.

한국인터넷정보센터(KRNIC)에서 도메인 체계에 대해 다음과 같이 이야기하고 있다.

도메인은 “.”또는 루트(root)라 불리는 도메인 이하에 아래 그림과 같이 역트리(Inverted tree)구조로 구성되어 있습니다. 루트 도메인 바로 아래의 단계를 1단계 도메인 또는 최상위 도메인(TLD, Top Level Domain)이라고 부르며, 그다음 단계를 2단계 도메인(SLD, Second Level Domain)이라고 부릅니다.
출처: 한국인터넷정보센터(KRNIC)

도메인 체계 (출처:KRNIC)
도메인 체계 (출처:KRNIC)

위 그림에서 보는 바와 같이 도메인에는 크게 국가도메인과 일반 도메인으로 구분된다.

처음 접하는 사람들에게는 이러한 이야기들이 많이 어렵게 느껴질 것이다.

 

다음의 네이버 도메인 주소를 가지고 살펴보면 이렇다.

https://www.naver.com

 

위 주소를 .(점)을 구분자로 뒤에서부터 읽는다고 생각하자.

KRNIC(한국인터넷정보센터)의 설명대로라면 .com 이므로 일반최상위도메인임을 알 수 있다.

그리고, naver라는 이름은 2단계 도메인인 것이다. 사실 웹 개발자가 실무에서 도메인을 가지고 TLD니 SLD니 따질 일은 크게 없다. 하지만 도메인이 이러한 체계를 가지고 있다는 것쯤은 알고 있어야 한다.

 

웹 개발자는 SE(시스템 엔지니어)와 커뮤니케이션을 많이 하기 때문이기도 하고, PM으로 성장하기 위해서도 당연히 필요한 지식이라 할 수 있다.


DNS 동작 과정

위에서 언급한 DNS에 도메인 네임으로 IP로 변환되는 과정을 더 들여다보면 다음과 같이 조금은 복잡한 과정을 거친다.​​

도메인 체계에 따라 DNS(Domain Name System)가 동작하게 된다.

① 부터 ⑨까지가 DNS와 관련된 과정이다.

DNS의 동작 과정
DNS의 동작 과정

① 사용자가 브라우저에서 http://www.naver.com이라고 입력하면,

② OS(예:Windows)는 Local DNS에게 IP를 물어보게 된다.

③ Local DNS는 Root Name Server에게 정보를 물어본다.

④ Root Name Server는 .com(TLD) 네임 서버에게 물어보라고 한다.

⑤ Local DNS는 다시 .com(TLD) 네임 서버에게 물어본다.

⑥ .com(TLD) 네임 서버는 naver.com 네임 서버에게 물어보라고 한다.

⑦ Local DNS는 다시 naver.com 네임 서버에게 물어본다.

⑧ naver.com 네임 서버는 Local DNS에게 IP를 알려준다.

⑨ Local DNS는 이제서야 IP를 반환해 준다.

 

Local DNS라고 표현했지만, 기본적으로 통신사에서 제공해 주는 DNS 서버를 얘기한다.

KT, SK브로드밴드, LG유플러스 등이 존재하고 있다.

본인 집에서 사용 중인 인터넷의 Local DNS가 어떻게 되는지 확인해 볼 수 있다.

Windows PC 기준으로 명령 프롬프트를 실행 후 nslookup이라고 입력하고 엔터를 눌러보라.

KT의 경우 kns.kornet.net 과 Address를 알려 줄 것이다.

Windows PC의 명령프롬프트에서 nslookup 명령어 실행 화면
Windows PC의 명령프롬프트에서 nslookup 명령어 실행 화면

이렇듯 도메인 네임 주소를 IP로 변환하기 위해 Root → TLD → Authoritative DNS의 과정을 거친다.

Authoritative DNS는 도메인 체계를 기준으로 SLD 네임 서버가 될 수도 있고, Third Level의 네임 서버가 될 수도 있다.

 

이렇게 복잡한 과정을 거치지만 ②에서 ⑨까지 과정은 눈 깜짝할 시간보다 빠르다. ㅎㅎ

빠른 처리를 위해 UDP 통신을 사용한다든지 각 단계 앞단에 캐시를 둔다든지 시스템적으로 매우 복잡하게 구성되어 있겠다.

 

도메인 네임에 대해 이야기하다 보면 당연히 URL이라는 이야기를 해야 한다.

그래서 다음은 URL과 URI에 대한 것이다.

 

 

URI vs URL vs URN: 개념과 차이점 정리

지금까지 인터넷과 웹의 동작 방식에 대해 이야기하면서 많은 용어들을 알게 되었다. 웹(Web)은 클라이언트(예:브라우저)가 HTTP 혹은 HTTPS로 서버에게 요청(Request)을 하고, 요청을 받은 서버는 응

wishlan.tistory.com

 

 

상기 상품 배너는 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

댓글