모든 사용자가 IP 주소로만 접속해야한다면, 일반사람들은 접근하기 어려울 것이다. 많은 사람들이 쉽게 접속하기 위해서 도메인을 만들었다.
만약 'www.singasong.co.kr'이라는 도메인이 있다면, DNS(Domain Name System)은 이러한 사람이 쓰는 주소를 컴퓨터가 쓰는 IP 주소로 변환한다. DNS를 통해 클라이언트는 도메인을 이용해서 서버에 접근할 수 있다. 이름과 숫자를 관리하는 전화번호부 같은 기능이라고 할 수 있다.
도메인은 전세계적으로 고유한 이름을 말한다. 도메인은 생성 규칙과 체계를 따른다.
도메인은 DOT(.)으로 연결한 계층 구조 이고, 나무를 거꾸로 한듯한 역트리 구조를 가지고 있다. 예를 들어 'www.singasong.co.kr'라는 도메인이 있다면, '.kr'이라는 최상위 도메인부터 처리하며, 각 단계의 서버들을 통해 순차적으로 확인한다.
도메인은 네임서버(DNS 서버)에서 저장, 관리된다. 각각의 네임서버는 도메인 계층의 일부 영역을 담당한다. 상위계층의 네임서버는 하위 계층의 도메인도 관리하고 하위계층 네임 서버의 IP를 가지고 있다.
이러한 수평/수직적인 구조 덕분에 체계적인 주소 관리가 가능하다.
루트 바로 아래 단계의 도메인! 1단계 도메인은 다시 ccTLD, gTLD로 나뉜다.
1-1) 'kr'과 같이 국가를 나타내는 국가 코드 도메인
ccTLD (country code Top Level Domain)
1-2) 'com'같이 등록인의 목적에 따라 사용되는 일반 도메인
gTLD (generic Top Level Domain)
조직의 속성을 구분하는 'co'(영리 기업), 'go'(정부 기관), 'ac'(대학)과 같은 도메인이 있다.
조직이나 서비스의 이름을 나타내는 도메인 이름으로 도메인 사용자가 원하는 문자열을 사용할 수 있다.
'www'는 호스트명으로 불린다. 주소의 체계에 따라 4단계 도메인 즉 서브도메인이 있을 수 있다. 예를들어 mail.singasong.co.kr같은 경우이다.
쿼리(Query)란 클라이언트가 네임서버(DNS 서버)에 IP주소를 물어보고 응답받는 과정을 말한다. 계층구조로 만들어진 여러 서버들을 통해서 여러 차례 요청과 응답을 받는데 이것을 재귀적 쿼리(Recursive Query)라고 한다.
1) https://www.stevenjlee.net/2020/07/08/%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-dns-domain-name-server/
2) https://velog.io/@eunnbi/DNS%EC%99%80-%EC%9E%91%EB%8F%99-%EC%9B%90%EB%A6%AC
3) DNS Resolver와 DNS Local server 차이점
https://velog.io/@zinukk/9kpyzbdt