DNS(Domain Name System)는 인터넷에서 도메인 이름을 IP 주소로 변환하거나 그 반대의 작업을 수행하는 시스템입니다. 이 시스템은 웹 브라우저가 웹 서버에 접속할 때 필요한 IP 주소를 찾는 데 사용됩니다.
DNS의 가장 중요한 기능은 사람들이 쉽게 기억할 수 있는 도메인 이름(예: www.example.com)을 기계가 이해할 수 있는 숫자 형태의 IP 주소(예: 192.0.2.1)로 변환하는 것입니다. 이런 과정을 '이름 해석'이라고 부릅니다.
DNS는 전화번호부와 유사하게 작동합니다. 사람의 이름을 알고 있지만 전화번호를 모를 때, 전화번호부를 찾아 해당 사람의 전화번호를 찾을 수 있습니다. DNS도 이와 비슷한 원리로 동작하는데, 도메인 이름을 알고 있지만 해당 서버의 IP 주소를 모를 때, DNS를 통해 IP 주소를 찾을 수 있습니다.
DNS는 이러한 정보를 전 세계 DNS 서버에 분산하여 저장하고, 필요할 때마다 이 정보를 찾아서 제공하는 역할을 합니다. 이렇게 함으로써, 사용자는 웹사이트의 IP 주소를 직접 기억하거나 찾아볼 필요 없이 웹사이트의 이름만으로 접근할 수 있게 됩니다.
사용자가 웹 브라우저에 URL(예: www.example.com)을 입력하면, 먼저 사용자의 컴퓨터는 해당 도메인 이름에 대한 IP 주소가 로컬 DNS 캐시에 있는지 확인합니다. 이 캐시는 최근에 방문했던 웹사이트의 IP 주소를 저장하고 있습니다.
로컬 DNS 캐시에 해당 IP 주소가 없는 경우, 요청은 사용자의 컴퓨터를 인터넷에 연결해주는 ISP(Internet Service Provider, 인터넷 서비스 제공자)의 DNS 서버로 전달됩니다.
ISP의 DNS 서버에도 해당 정보가 없으면, 이 서버는 'Root DNS 서버'에게 정보를 물어봅니다. 루트 DNS 서버는 전 세계에 13개만 있으며, 이들은 TLD(Top-Level Domain, 최상위 도메인) 서버의 위치를 알고 있습니다.
루트 DNS 서버는 TLD 서버의 정보를 ISP의 DNS 서버에 반환합니다. TLD 서버는 .com, .net, .org 등의 도메인에 대한 DNS 정보를 관리합니다.
ISP의 DNS 서버는 이제 TLD 서버에게 해당 도메인의 IP를 요청합니다. TLD 서버는 해당 도메인을 관리하는 'Authoritative DNS 서버'의 정보를 ISP의 DNS 서버에 제공합니다.
(Authoritative DNS 서버는 보통 웹 호스팅 제공자나 도메인 등록 기관, 또는 대형 조직이 내부 네트워크를 위해 직접 운영하는 경우가 많습니다.)
ISP의 DNS 서버는 마지막으로 Authoritative DNS 서버에게 해당 도메인의 IP 주소를 요청합니다. 이 서버는 해당 도메인에 대한 '정확한' IP 주소를 가지고 있습니다.
Authoritative DNS 서버의 응답은 ISP의 DNS 서버를 통해 사용자의 컴퓨터로 반환됩니다. 이제 웹 브라우저는 이 IP 주소를 이용하여 웹 서버에 연결할 수 있습니다.
이러한 응답은 향후 참조를 위해 사용자의 로컬 DNS 캐시에 저장되어, 같은 웹사이트에 다시 접속할 때 DNS 조회 과정을 건너뛸 수 있게 합니다.
이 모든 과정은 사실상 순식간에 일어나며, 사용자가 웹 브라우저의 주소창에 URL을 입력하고 엔터키를 누른 후 웹 페이지가 로딩되기 시작하는 그 사이의 시간 동안에 벌어집니다.