웹에서 동작하는 모든 서비스는 결국 하나의 이름 위에 세워진다. 브라우저 주소창에 입력하는 짧은 문자열, 곧 도메인이 서비스의 입구이자 그 뒤에 놓인 기술 전체의 뿌리다. 서버를 어디에 두든, 어떤 언어로 짜든, 사용자가 가장 먼저 만나는 것은 이 이름이다. 도메인을 정확히 이해하지 못한 채 그 위에 시스템을 얹으면, 나중에 이름을 옮기거나 인증서를 붙일 때마다 근거 없이 흔들리게 된다.
이번 편은 그 뿌리에 해당하는 도메인 자체를 다룬다. 도메인이 어떤 계층 구조를 가진 이름 체계인지, 그 이름이 어떻게 숫자 주소와 연결되는지, 표기에는 어떤 규칙이 있는지, 소유라는 말이 실제로 무엇을 뜻하는지, 그리고 이름을 고를 때 어떤 원리가 작동하는지를 차례로 짚는다. 이 기초가 단단해야 다음 편부터 이어질 DNS와 인증서 이야기가 흔들림 없이 얹힌다.
계층으로 이루어진 이름 체계
도메인은 사람이 읽을 수 있는 주소를 계층적으로 배열한 이름 체계다. example.com이라는 이름은 왼쪽에서 오른쪽으로 갈수록 더 넓은 범위를 가리키는 나무 구조를 따른다. 가장 오른쪽이 뿌리에 가깝고, 왼쪽으로 갈수록 세부적인 잎에 해당한다. 이 방향은 사람이 글을 읽는 방향과 반대라서 처음에는 어색하지만, 이름을 오른쪽부터 해석하는 습관을 들이면 구조가 또렷하게 보인다.
이름은 점을 기준으로 여러 조각으로 나뉜다. 가장 오른쪽 조각이 최상위 도메인이고, 그 앞이 실제로 등록해 사용하는 2차 도메인이며, 다시 그 앞에 서브도메인이 붙는다. blog.example.com에서 com은 최상위 도메인, example은 등록한 도메인, blog는 그 아래에 만든 서브도메인이다. 각 조각은 상위 조각의 관리 아래에 놓인 하위 이름이라는 관계를 갖는다.
최상위 도메인은 성격에 따라 다시 나뉜다. com이나 org처럼 용도를 나타내는 일반 최상위 도메인이 있고, kr이나 jp처럼 국가를 나타내는 국가 코드 최상위 도메인이 있다. 어느 쪽을 고르느냐는 단순한 취향이 아니라 신뢰도와 등록 정책, 때로는 법적 요건까지 얽히는 선택이다. 국가 코드 도메인은 해당 국가의 규정을 따르므로 등록 조건이 더 까다로운 경우가 많다.
이 계층 구조가 중요한 이유는, 뒤에서 다룰 이름 조회가 정확히 이 나무를 위에서 아래로 내려가며 이루어지기 때문이다. 뿌리를 관리하는 서버가 최상위 도메인의 관리 서버를 알려 주고, 그 서버가 다시 해당 도메인의 관리 서버를 알려 주는 식으로 단계가 이어진다. 계층을 머릿속에 그려 두면 위임이라는 개념이 자연스럽게 따라온다.
각 계층이 서로 다른 주체에 의해 관리된다는 점도 함께 기억해야 한다. 뿌리와 최상위 도메인은 국제 기구와 각 등록소가 관리하고, 그 아래 등록한 도메인부터는 소유자가 위임받아 자유롭게 다룬다. 손댈 수 있는 영역과 손댈 수 없는 영역이 이 계층에서 분명하게 갈리는 것이다. 어떤 설정은 스스로 바꿀 수 있고 어떤 설정은 상위 기관의 몫인지가 이 관리 경계에서 결정된다. 계층을 이해한다는 것은 곧 이 권한의 경계를 이해한다는 뜻이다.
이름과 숫자의 분리
컴퓨터가 실제 통신에 쓰는 것은 이름이 아니라 숫자로 된 주소다. 사람은 example.com을 쉽게 기억하지만, 기계는 결국 203.0.113.10 같은 숫자를 향해 연결을 시도한다. 도메인은 사람의 언어와 기계의 언어 사이에 놓인 다리이며, 이름을 숫자로 바꾸는 번역의 출발점이다. 이 번역이 없다면 사용자는 방문하려는 모든 서비스의 숫자 주소를 외우고 다녀야 할 것이다.
이름과 숫자를 분리해 둔 결정은 웹이 오래 확장되어 온 핵심 이유다. 서버를 옮겨 숫자 주소가 바뀌어도 이름은 그대로 유지되므로, 운영자는 뒤에서 자유롭게 서버를 갈아 끼울 수 있다. 사용자는 이름만 기억하면 되고, 그 이름이 지금 어느 숫자를 가리키는지는 알 필요가 없다. 안정적인 이름과 유동적인 주소를 나눈 이 구조가 대규모 서비스 운영을 가능하게 한다.
이름과 숫자의 관계는 일대일이 아니다. 하나의 이름이 여러 숫자에 연결되어 부하를 나눌 수도 있고, 지역에 따라 다른 서버로 안내될 수도 있다. 반대로 여러 이름이 하나의 숫자를 가리키기도 한다. 한 서버가 여러 사이트를 함께 호스팅할 때 이런 구성이 나오며, 이때 서버는 요청에 담긴 호스트 정보를 보고 어느 사이트를 응답할지 결정한다. 이름과 주소가 다대다로 얽힐 수 있다는 점은 실무에서 자주 마주치는 사실이다.
도메인은 목적지가 아니라 목적지를 알려 주는 안내판이다. 도메인 그 자체는 어떤 서버도 아니며, 다만 숫자 주소를 찾아가기 위한 열쇠 역할을 한다. 이름과 숫자의 매핑을 저장하고 응답해 주는 시스템이 바로 다음 편부터 다룰 이름 조회 체계다. 지금은 도메인이 안내판이라는 점, 그리고 그 안내가 유연하게 바뀔 수 있도록 설계되었다는 점만 확실히 해 두면 충분하다.
정규화된 전체 이름과 표기
도메인을 다루다 보면 example.com.처럼 끝에 점이 하나 더 붙은 표기를 만난다. 이 마지막 점은 뿌리를 명시적으로 가리키는 표시이며, 이렇게 뿌리까지 완전하게 적은 이름을 전체 정규 도메인 이름이라고 부른다. 평소에는 이 점을 생략하지만, 존 파일이나 정밀한 설정에서는 점의 유무가 이름의 의미를 바꾼다. 후행 점을 빼먹으면 일부 도구가 그 이름을 상대적인 것으로 해석해 뒤에 도메인을 한 번 더 붙이는 오류를 낸다.
도메인 이름에는 표기 규칙이 있다. 각 조각에는 영문자와 숫자, 그리고 하이픈만 쓸 수 있고 대소문자는 구분하지 않는다. Example.com과 example.com은 같은 이름으로 취급되며, 이 규칙 덕분에 사용자가 대소문자를 틀리게 입력해도 같은 곳으로 안내된다. 밑줄이나 공백 같은 문자는 도메인 이름 자체에는 허용되지 않으므로, 이름을 지을 때 이 한계를 먼저 의식해야 한다.
한글이나 다른 문자로 된 도메인도 존재하지만, 실제로는 내부에서 영문과 숫자로 이루어진 형태로 변환되어 처리된다. 겉으로는 우리말 이름처럼 보여도 시스템은 약속된 규칙에 따라 바꾼 이름을 사용한다. 국제화된 이름을 다룰 때는 이 변환 과정을 염두에 두어야 겉보기와 실제 처리 사이의 간극에서 오는 오류를 피할 수 있다.
각 이름 조각의 길이와 전체 이름의 총 길이에도 상한이 있다. 평범한 서비스에서는 문제가 될 일이 거의 없지만, 서브도메인을 여러 단계로 깊게 쌓는 구조에서는 이 한계를 의식해야 할 때가 있다. 표기 규칙은 사소해 보여도 원인 모를 오류의 배후일 때가 많다. 설정이 이유 없이 동작하지 않을 때 가장 먼저 의심할 대상이 이름의 철자, 후행 점, 허용되지 않은 문자다.
소유가 아니라 등록
도메인은 물건처럼 완전히 사서 소유하는 것이 아니라, 정해진 기간 동안 사용할 권리를 빌리는 개념에 가깝다. 등록 대행 기관을 통해 연 단위로 이름을 등록하고, 기간이 끝나기 전에 갱신해야 계속 쓸 수 있다. 이 구조를 모르면 어느 날 갑자기 서비스의 이름을 잃는 사고가 벌어진다. 소유가 아니라 임차라는 사실이 도메인 관리의 모든 안전장치가 필요한 근본 이유다.
소유권 기록은 각 최상위 도메인을 관리하는 등록소가 보관한다. 등록 대행 기관은 사용자와 등록소 사이에서 등록과 갱신과 이전을 처리하는 창구 역할을 한다. 사용자가 비용을 지불하는 상대는 대행 기관이지만, 최종 기록은 그 위의 등록소에 남는다. 이 계층을 이해하면 도메인을 다른 대행 기관으로 옮기는 이전 작업이 같은 등록소 기록의 관리 창구를 바꾸는 일이라는 점도 자연스럽게 이해된다.
등록 정보는 원칙적으로 공개 조회가 가능하다. 보호 옵션을 켜지 않으면 이름과 연락처가 그대로 노출되어 스팸과 사칭의 표적이 된다. 개인 정보 보호 설정을 켜 두는 것은 작은 조작이지만 개인을 지키는 방패가 된다. 등록에 사용한 이메일 주소를 인증해 두는 것도 중요한데, 규정상 등록 연락처가 인증되지 않으면 도메인이 일시 정지될 수 있기 때문이다.
갱신은 사람의 기억이 아니라 자동화에 맡겨야 한다. 갱신을 놓쳐 만료되면 일정한 유예 기간이 주어지지만, 그 기간마저 지나면 도메인은 다시 시장에 풀려 누구든 선점할 수 있게 된다. 오래 키운 서비스가 이름 하나 때문에 무너지는 일은 대개 갱신을 놓친 데서 시작된다. 소유의 구조를 이해한다는 것은 곧 이름을 잃지 않기 위한 안전장치를 빠짐없이 챙긴다는 뜻이다.
하나의 이름에 걸리는 것들
도메인 하나에는 생각보다 많은 것이 걸려 있다. 웹사이트의 주소가 그 이름 위에 놓이는 것은 물론이고, 그 도메인으로 오가는 전자우편, 서버 사이의 신뢰를 증명하는 인증서, 검색 엔진이 축적한 평판까지 모두 같은 이름에 묶인다. 도메인은 단순한 주소가 아니라 서비스의 정체성이 응축된 지점이며, 그래서 이름을 잃는 일은 주소 하나를 잃는 것을 넘어 여러 체계가 한꺼번에 무너지는 사건이 된다.
이 묶임 때문에 도메인은 서비스 구조의 중심에 놓인다. 웹 트래픽은 도메인의 한 레코드가 가리키고, 전자우편은 다른 레코드가 관리하며, 서브도메인은 각각의 하위 서비스를 담는다. 하나의 이름 아래에 여러 갈래가 뻗어 있는 셈이라, 도메인을 다룬다는 것은 곧 이 갈래들을 함께 조율한다는 뜻이다. 뒤에서 다룰 레코드 이야기는 결국 이 갈래들을 어떻게 나누어 배치하느냐의 문제다.
도메인이 이렇게 중심에 놓이기 때문에, 그 관리 권한은 서비스에서 가장 민감한 자산 중 하나가 된다. 도메인의 설정을 바꿀 수 있는 계정이 탈취되면 공격자는 트래픽을 자신의 서버로 돌리고 전자우편을 가로챌 수 있다. 도메인 관리 계정을 다른 어떤 계정보다 강하게 보호해야 하는 이유가 여기에 있다. 이름이 걸치는 범위가 넓을수록 그 이름의 열쇠를 지키는 일도 무거워진다.
이름을 고르는 원리
도메인을 고를 때 가장 먼저 볼 것은 기억하기 쉬운가다. 뜻이 좋아도 발음이 어렵거나 철자를 헷갈리기 쉬운 이름은 사용자가 다시 찾아오기 어렵다. 입으로 한 번 불러 보고 받아 적을 수 있는지 시험하는 단순한 방법이 좋은 판단 기준이 된다. 이름은 마케팅의 시작점이자 사용자가 반복해서 입력해야 하는 대상이므로, 입력의 마찰을 줄이는 방향이 원칙이다.
하이픈이나 숫자를 남용하지 않는 편이 안전하다. 이런 요소가 섞이면 구두로 주소를 전할 때 혼란이 커지고, 사용자가 엉뚱한 이름으로 접속해 트래픽을 놓치기 쉽다. 최상위 도메인 선택도 신중해야 한다. 익숙한 도메인은 안정감을 주지만 좋은 이름이 대부분 선점되어 있고, 새로 생긴 도메인은 이름이 널널해도 아직 낯설어 신뢰를 덜 받거나 일부 필터에 걸릴 수 있다.
이름의 길이도 함께 저울질할 대상이다. 짧은 이름은 입력이 편하고 기억에 오래 남지만 대부분 이미 선점되어 있고, 긴 이름은 여유가 있는 대신 오타가 늘고 구두 전달이 번거로워진다. 길이와 명료함 사이의 균형은 서비스가 어떤 경로로 사용자에게 닿는지에 따라 달라진다. 입소문으로 퍼지는 서비스라면 부르기 쉬운 짧은 이름이, 검색으로 유입되는 서비스라면 뜻이 분명한 이름이 더 유리하다.
규모가 있는 서비스라면 유사한 이름과 흔한 오타 도메인을 함께 확보하는 방어적 등록도 검토할 만하다. 핵심 이름 주변의 오타나 다른 최상위 도메인 조합을 미리 등록해 두면, 경쟁자나 악의적 사용자가 그 틈을 파고드는 것을 막을 수 있다. 이 방어는 비용이 들지만, 브랜드가 커진 뒤에 되찾는 비용에 비하면 대개 저렴하다.
도메인은 한번 정하면 좀처럼 바꾸기 어렵다. 이름을 바꾸면 그동안 쌓은 검색 신뢰도와 외부 링크, 사용자의 기억까지 상당 부분 다시 쌓아야 한다. 그래서 도메인 결정은 가볍게 내릴 일이 아니라 오래 쓸 각오로 정할 일이다. 이렇게 도메인의 정체와 계층, 이름과 숫자의 분리, 표기 규칙, 소유의 구조, 선택의 원리까지 훑었다. 다음 편은 실제로 도메인을 사서 내 것으로 만드는 과정을 따라간다.