DNS(Domain Name System) 웹 개발자라면 알아야 할 지식

DNS(Domain Name System) 인터넷에서 도메인 이름과 IP 주소를 매핑하는 시스템입니다.

인터넷에서 사용되는 모든 웹사이트와 서비스는 고유한 IP 주소를 갖고 있지만, 이를 사람이 기억하기 어렵기 때문에 도메인 이름을 사용합니다. DNS는 도메인 이름을 이해하고 해당 도메인 이름을 IP 주소로 변환하여 사용자가 인터넷에 접속할 수 있습니다.

DNS 계층 구조

DNS계층구조

DNS 구조는 계층적인 형태로 구성되어 있습니다.
루트 DNS 서버를 시작으로, 최상위 도메인(TLD) 서버, 그리고 도메인을 소유하고 있는 네임서버까지 계층적으로 나뉘어져 있습니다.

  • Root DNS: 인터넷에서 모든 DNS 쿼리의 시작점이며, 최상위 도메인(TLD) 서버의 IP 주소 반환. 전 세계 13대 구축.
  • 최상위 도메인(TLD) 서버: 도메인의 최상위 부분을 관리하며, 도메인에 속한 네임서버의 IP 주소 반환.
  • 네임서버: 도메인을 소유하고 있는 조직이나 업체가 운영하는 서버로, 도메인에 대한 IP 주소나 기타 DNS 레코드를 반환.

사용자가 도메인 이름을 입력하여 IP 주소를 얻기 위해 DNS 쿼리를 보낼 때, 이러한 계층 구조를 따라서 쿼리가 처리됩니다. 루트 DNS 서버에서 시작하여 계층을 내려가며, 최종적으로 해당 도메인의 네임서버로부터 IP 주소를 받아오는 것입니다.

일반 최상위 도메인 gTLD (generic Top Level Domain)

일반 최상위 도메인는 전 세계에서 등록이 가능한 도메인 라벨의 종류는 .com, .net, .org, .edu, .gov, .int, .mil, .biz, .name, .info, .aero 등이 있다. gTLD는 VERISIGN 등의 회사가 Registrar이고, 국내 ICANN 인증 registrar는 가비아, 후이즈, router53 등이 있습니다.

도메인설명
.com상업적 영리 기관
.biz회사
.edu교육기관
.gov정부기관
.info정보서비스 제공자

국가 최상위 도메인 ccTLD (country code Top Level Domain)

국가 최상위 도메인의 경우 .kr, .us, .jp 각 나라의 네트워크 도메인을 관리하며, .kr의 경우 한국인터넷진흥원이 registry로, registrar는 가비아, 후이즈, router53 등이 있습니다.

도메인 이름을 등록하려면 인터넷 등록기관에 신청을 하여 도메인 이름의 고유성을 확인해야 합니다. 등록된 도메인 이름은 DNS 서버에 등록되어 해당 도메인 이름을 사용하는 모든 사용자에게 도메인 이름과 IP 주소의 매핑 정보 알려줍니다.

도메인 주소 구조

도메인 주소 구조

DNS 동작 과정

일반적으로 사용자가 웹 브라우저에 도메인 이름을 입력하면, 먼저 로컬 컴퓨터의 DNS 캐시에 해당 도메인 이름과 매핑된 IP 주소를 확인합니다. 캐시에 없을 경우, DNS 서버에 요청을 보내 해당 도메인 이름의 IP 주소를 받아옵니다. 이후 사용자는 IP 주소를 통해 웹사이트에 접속할 수 있습니다.

동작 과정 상세

  • m.naver.com 주소창 입력
  • PC host 파일 확인
  • Local DNS 확인(인터넷 제공 회사 ISP: KT, SKT, LG)
  • 루트 네임 서버 확인 .com 네임 서버 IP 주소 조회 전달
  • .com 일반 최상위 도메인 m.naver.com 네임 서버 IP 조회 전달
  • m.naver.com 접속

DNS 등록 Type

A 레코드

A 레코드는 도메인 이름과 IP 주소 간의 매핑을 정의하는 DNS 레코드입니다. A 레코드를 사용하여 도메인 이름을 IP 주소로 해석할 수 있습니다. 이를 통해 사용자는 도메인 이름을 사용하여 웹사이트에 접속할 수 있습니다.

예를 들어, “www.example.com“의 A 레코드가 “203.0.113.0”이라면, 사용자는 웹 브라우저에서 “www.example.com“을 입력하여 해당 IP 주소의 웹사이트에 접속할 수 있습니다.

CNAME 레코드

CNAME 레코드는 도메인 이름을 다른 도메인 이름에 매핑하는 DNS 레코드입니다. 이를 통해 도메인 이름을 하나의 호스트에서 다른 호스트로 리디렉션할 수 있습니다.

예를 들어, “www.example.com“의 CNAME 레코드가 “www.example.net“이라면, 사용자가 “www.example.com“을 입력하면 실제로는 “www.example.net“의 웹사이트로 리디렉션됩니다.

CNAME 레코드는 주로 호스팅 프로바이더나 CDN(Content Delivery Network)의 도메인 이름을 사용하여 리소스를 제공하는 데 사용됩니다. 이를 통해 서로 다른 도메인 이름을 사용하여 리소스를 효율적으로 제공할 수 있습니다.

CNAME 레코드는 도메인 이름을 다른 도메인 이름에 매핑하는 DNS 레코드입니다. CNAME 레코드의 주요 장점은 다음과 같습니다:

  1. 호스팅 변경 용이성: CNAME 레코드를 사용하면 도메인 이름을 다른 호스트로 쉽게 변경할 수 있습니다. 기존의 도메인 이름을 유지한 채로 호스팅 서비스를 변경하거나, CDN과 같은 다른 서비스로 리디렉션할 수 있습니다.
  2. 중복 제거: CNAME 레코드를 사용하여 여러 도메인 이름을 하나의 호스트로 매핑할 수 있습니다. 이를 통해 중복되는 리소스를 줄이고 효율적으로 관리할 수 있습니다.
  3. 유지 보수 용이성: CNAME 레코드를 사용하면 도메인 이름을 업데이트하거나 변경할 때 한 곳에서만 수정하면 됩니다. 이는 유지 보수 과정을 단순화하고 오류 가능성을 줄입니다.
  4. 확장성: CNAME 레코드를 사용하면 도메인 이름을 여러 호스트로 매핑할 수 있습니다. 이를 통해 리소스의 부하 분산이 가능하며, 서비스의 확장성을 향상시킬 수 있습니다.
  5. 유연성: CNAME 레코드를 사용하면 도메인 이름을 다른 도메인 이름으로 리디렉션할 수 있습니다. 이를 통해 사용자를 다른 사이트로 리디렉션하거나, 다른 서비스로 연결하는 등의 유연한 설정이 가능합니다.

따라서, CNAME 레코드는 도메인 이름 관리와 유지 보수를 간편하게 할 수 있는 장점을 가지고 있습니다.

Leave a Comment