DNS
복잡한 숫자로 된 집 주소 대신 알기 쉬운 건물 이름을 찾아주는 인터넷 세상의 전화번호부예요.
정의 DNS(도메인 네임 시스템)는 사람이 읽기 쉬운 문자 형태의 웹사이트 주소를 컴퓨터가 서로 통신할 때 사용하는 숫자 주소로 바꿔주는 체계예요. 인터넷 주소창에 가고 싶은 사이트 이름을 입력하면 실제 데이터가 보관된 컴퓨터의 위치를 실시간으로 찾아 연결해 줘요.
왜 컴퓨터는 이름 대신 숫자를 쓸까요?
친구에게 전화를 걸 때 열한 자리 번호를 외우지 않고 이름만 눌러 통화하는 스마트폰 연락처를 떠올려 보세요. 인터넷 세상도 이와 똑같은 방식으로 움직여요. 사람은 글자로 된 이름을 잘 기억하지만, 컴퓨터는 숫자로 이루어진 기계용 주소만 정확하게 알아들을 수 있어요.
이 숫자로 된 실제 주소를 IP 주소(인터넷에 연결된 기기의 고유 번호)라고 불러요. 숫자가 너무 길고 복잡해서 사람이 수많은 사이트의 IP 주소를 일일이 외우는 것은 불가능에 가까워요. 그래서 사람이 쓰기 편한 도메인 이름과 컴퓨터가 쓰는 IP 주소를 짝지어 관리하는 전화번호부가 필요해졌어요.
우리가 웹 브라우저에 가고 싶은 사이트 주소를 적는 순간, 컴퓨터는 먼저 DNS라는 거대한 전화번호부를 재빠르게 펼쳐봐요. 그 이름에 적힌 번호를 1초도 안 되는 짧은 시간에 확인한 다음, 그 번호를 가진 서버로 바로 찾아가 화면을 띄워줘요.
도메인 주소는 어떻게 찾아질까요?
전화번호부가 전 세계에 딱 한 권만 있다면 수십억 명의 요청을 감당하지 못하고 금방 멈춰버릴 거예요. 그래서 DNS는 마치 회사의 부서 조직처럼 여러 대의 컴퓨터가 역할을 나누어 분산 관리하는 똑똑한 구조를 갖추고 있어요.
주소를 찾을 때는 주소의 오른쪽 끝부분부터 거꾸로 질문을 던져요. 예를 들어 주소 맨 끝의 국가나 기관 종류를 관리하는 가장 높은 서버에 먼저 묻고, 그 아래 단계의 세부 서버로 차례차례 안내를 받아요. 단계별로 질문을 넘기며 최종 목적지의 IP 주소를 알아내는 방식이에요.
매번 모든 단계를 거치면 시간이 오래 걸리기 때문에, 한 번 찾은 주소는 컴퓨터나 통신사에 잠깐 저장해 둬요. 이를 캐시(임시 저장 공간)라고 부르며, 다음에 같은 사이트를 다시 방문할 때는 먼 서버까지 갈 필요 없이 즉시 사이트를 열어줘요.
조금 더 정확히 말하면
인터넷 주소는 하나의 덩어리처럼 보이지만 실제로는 점을 기준으로 나뉜 계층 구조예요. 가장 꼭대기에는 전 세계에 열세 그룹만 존재하는 루트 네임서버(최상위 인터넷 주소 안내소)가 있고, 그 아래에 각 확장자별 세부 서버가 나뭇가지처럼 뻗어 있어요.
우리가 주소를 입력했을 때 실제로 컴퓨터를 대신해 전 세계 DNS 서버를 뛰어다니며 번호를 알아오는 심부름꾼 프로그램이 있어요. 이를 재귀적 리졸버(주소를 끝까지 찾아주는 서버)라고 부르며, 보통 우리가 이용하는 통신사에서 이 심부름꾼을 운영해요.
만약 DNS에 문제가 생겨 엉뚱한 번호를 알려주면 겉보기엔 진짜 사이트 같아도 가짜 사이트로 납치될 위험이 생겨요. 그래서 최근에는 디지털 서명을 통해 데이터가 변조되지 않았음을 검증하는 DNS 보안 확장 기술(DNSSEC)을 함께 적용하고 있어요.
🤔 흔한 오해
DNS는 웹사이트의 모든 글과 사진 데이터를 저장하고 있는 큰 창고다.
DNS는 웹사이트의 내용이 아니라 '어디로 가야 하는지(IP 주소)'만 적혀 있는 길잡이 안내소예요. 실제 웹페이지 데이터는 안내받은 목적지의 웹 서버에 들어 있어요.
🧺 일상에서 만나요
사람이 읽는 도메인 이름을 컴퓨터가 쓰는 숫자 IP 주소로 번역해 주는 인터넷의 핵심 안내 시스템이에요.