IT 업계에서 일하시는 분이라면 개발자가 아니시더라도 DNS, Domain 이란 말을 참 많이 들어보셨을 겁니다.
(심지어 일반인들도 서비스 장애가 나면 에러 페이지를 통해 들어보셨을 수도 있습니다 🥲)
오늘은 이러한 DNS, Domain 에 대한 개념 그리고 이게 실제로 어떻게 동작을 하는건지에 대해 매우 재밌고 자세하게 정리한 글이 있어 공유드립니다.
글에서 설명하고 있는 내용중 핵심적인 내용 몇가지만 정리해드리면 다음과 같습니다.
✔️ DNS 란?
도메인 네임 시스템(Domain Name System)의 약자입니다.
✔️ DNS 는 왜 필요할까?
웹사이트는 저마다 234.123.123.123 과 같은 형태의 IP 주소를 갖습니다.
웹사이트에 접근하려고 한다면 IP 주소보다는 웹사이트를 상징적으로 나타낼 수 있는 도메인 주소(ex: www.naver.com)로 접근하는게 더 쉬울 겁니다.
DNS 는 이런 웹사이트의 IP 주소와 도메인 주소를 이어줄수 있게 도와주는 시스템입니다.
✔️ DNS 서버란?
위에서 설명드린 IP 주소와 도메인 주소(혹은 호스트 이름)를 이어줄 수 있게 데이터를 관리하는 서버이며 다른 이름으로 Name 서버라고 불리기도 합니다.
✔️ DNS 동작
브라우저에서 'www.naver.com' 을 입력할 경우 다음과 같은 일들이 일어납니다.
1️⃣ 브라우저는 DNS 서버에 'www.naver.com' 에 대한 정보를 넘긴다.
2️⃣ DNS 서버는 도메인 주소에 맞는 IP 주소를 넘겨준다.
3️⃣ IP 주소를 받은 브라우저는 해당 주소로 화면을 그리기 위한 요청을 보낸다.
4️⃣ 'www.naver.com' 을 서비스 하고 있는 서버에서 브라우저로 응답을 준다.
5️⃣ 브라우저는 전달받은 응답에 맞게 화면을 그려준다.
여기서 1, 2, 3 번에 해당하는 작업이 DNS 와 관련된 동작이라고 보시면 됩니다.
DNS 동작만 들어보면 꽤 간단해보이지만 세상에 있는 수많은 도메인 주소를 처리하려면 한개의 DNS 서버로 할 수 없습니다.
그래서 DNS 서버의 종류가 계층화 되어있고, 각 데이터를 단계적으로 관리하도록 되어있습니다.
공유 드린 글에 이에 대한 자세한 내용들이 재미있게(?) 설명되어있으니 관심있으신 분들께서는 읽어보시면 좋겠습니다.