도메인 구입기(+ 인터넷 주소 체계)

Benedictus Park·2023년 8월 10일
0

꼴에... 도메인...?

제가 구축하고자 하는 것은 자취방구석 서버입니다. 비용을 절감하고자 한다면 방구석에서 열일중인 iptime 공유기의 DDNS 기능을 사용하면 되겠습니다. 어려운 일도 아니죠. 설정 창에 있는 한글만 읽을 수 있으면 누구나 할 수 있잖아요?

하지만 저에게는 거창한 가치가 있습니다. 틈틈이 공익적인 무언가를 하고 싶습니다. 거기에 사용할 전용 서버를 구축하려고 하는 것입니다. 그래서 제가 지은 부끄러운 이름이 달린 도메인을 서버에 연결하고 싶은 것입니다.

우당탕탕 도메인 구입 대작전

1. 도메인 얻기

호기롭게 WHOIS 도메인 웹 사이트에 접속합니다. 왜 하필이면 후이즈냐? 그러게요. 그냥 끌려서요.

호오...


1-1. 도메인이란?(1) - IP 주소

어... 너무 쉽고 많은 곳에 설명이 되어 있지만 보태어 봅니다. 다른 머신에 접근하려면 그 머신의 주소를 알아야 합니다. 내 컴퓨터에서 동생 컴퓨터로 데이터를 보내고 싶습니다. 그러면 주소를 알아야 합니다. 너무 당연합니다.

컴퓨터 네트워크의 기본 주소 부여 방식은 IPv4(Internet Protocol version 4)입니다. 줄여서 IP 주소라고도 하죠. 일상에선 IP라고 하고요. 우리가 보통 IP라고 하면 IPv4 방식의 주소를 말합니다.

192.168.0.1

이런 거 말입니다. 네 부분으로 나뉘어 있고, 각 부분은 점('.')으로 구분됩니다. 또한 각 부분에는 0~255 사이의 숫자가 올 수 있습니다. 앗! 255...? 우리에게 참 친숙한 숫자 아닙니까!

2, 4, 8, 16, 32, 64, 128, 256! 하나 둘 셋 넷... 여덟 비트로 표현 가능한 수네요. 0도 표현해야 하니까 (256-1)까지의 수를 표현할 수 있잖아요? unsigned인 것이군요. 맞습니다! IPv4 주소 체계의 주소는 32비트(4byte)입니다. 각 분절이 1바이트씩이죠.

IPv4 주소 체계는 0.0.0.0~255.255.255.255까지... 총 몇 개의 주소를 표현할 수 있냐면... 계산해 볼까요? 32비트잖아요! 한 줄에 8개 숫자씩 써 가면서 계산해 보죠.

2, 4, 8, 16, 32, 64, 128, 256
512, 1024, 2048, 4096, 8192, 16384, 32768, 65536

(계산기 등장)

131072, 262144, 524288, 104876, 2097152, 4194304
8388608, 16777216
33554432, 67108864, 134217728, 268435456, 536870912, 1073741824, 2147483648, 4294967296

죄송합니다. 이거 사람 머리로 계산하긴 어려운 것이었군요. 비트 단위 나오니 신나서 그만... 아무튼 제 능력으로 계산해 보니 42억 9496만 7296개의 주소가 나오네요. 이게 무슨! 인터넷 사용하는 기기가 몇 개인데 이걸로 어떻게 주소를 다 줍니까? 아, 일단 계산은 맞게 했나...?

다행히 맞네요! 이거 당연히 다 고갈되었습니다. 그래서, 업그레이드를 해야 하는데요. 버전 4가 있으면 버전 5도 있겠죠!? Internet Protocol version 5. 프로토콜 헤더에 '버전 번호'가 들어가는 필드가 있는데요. 여기에 5가 들어가는 프로토콜이 있는데, 이 친구는 '인터넷 스트림 프로토콜'이라고 해서 ST로 줄여 부른답니다. 뭔가 데이터 스트리밍에 쓰이는 프로토콜인듯 한데요. 실험적인 프로토콜이라 얘는... IPv5라는 명칭까지 쓰지는 않습니다.

다만 누군가는 이런 서사까지 꿰고 있을 수 있기도 하고, 이러한 이유로 혼동을 방지하기 위해 IPv4 다음 인터넷 프로토콜은 IPv6로 명명되었습니다.


IPv6(Internet Protocol version 6)는 애초 IPv4의 문제를 해결하기 위해 제안되었습니다. 가장 큰 문제인 주소 고갈 문제를 해결하기 위해서요. 데이터 보안 강화 등 측면에서도 개선이 있지만 지금 이게 중요한 주제는 아니니 넘겨두겠습니다.

IPv6는 128비트 주소를 씁니다. 32비트가 2322^{32}개의 주소를 할당할 수 있었는데, 얘는 21282^{128}개의 주소를 할당할 수 있는 것입니다. 16비트씩 8개 필드에 16진수를 넣습니다. 구분자는 콜론(':')입니다. 아직 크게 쓰이는 중은 아니지만... 아래처럼 씁니다.

0000:0000:0000:0000:0000:0000:0000:0000

IPv4 주소도 기억하기가 참 좋지 않은데, 얘는 더 하네요.

1-2. 도메인이란?(2) - 도메인과 DNS

네. IPv4, IPv6 주소는 외우기가 쉽지 않다는 걸 말하고 싶었는데 너무 길어졌네요. 도메인은 이 주소에 자연어 이름을 붙이는 겁니다. 너무 간단합니다. 물론 네이밍 규칙 같은 것이 있죠.

그러나 16진법은 16개의 문자로 경우의 수를 표현하니 두 자리만 가지고도 162=25616^{2}=256개의 경우가 표현 가능하듯이, 알파벳만 이용한다고 하더라도 알파벳이 26개니까 두 자리에 676개의 경우가 표현 가능합니다. 그런데 도메인 이름의 최대 길이는 영문 기준 253자입니다.

즉, 영문만 사용한다고 해도 2667626^{676} 정도의 경우를 표현할 수 있는 겁니다. 이건 제 뇌로 계산은 당연히 안 되고, 계산기도 터질 것 같으니 Python 인터프리터로 계산해 보겠습니다.

>>> 26**676
332646706786086137478486699713834145452397487844112483334872612091876669736932387666162905505685416966351710693477996222173097588805688344362890340680002174979250166644184431543505395760867977276035504911040249784009751364463821394745877296965739022096664691312633852192212746265230247058675910004606037515166206131870704438279014921668281357399999083057008769729342088689949348845205736933080577560772364148874124854489808392668097551482875796055002042718702931767960236535160791235933708593822516440646770952662389890579492999603087338643676331800847308582178042274637512301867112393013962964683600771195850044607730051714372895367108132581293993802202351559666084131551032906274778194512651047963846327637189023807735064483179353370169296398271217704901893171021100953370793116785537792640917673021792361630409246207202946269717824888427118964151461966265620930577490732921784460745432806033779844237244940076886682922168820171061643251531757948319563776

별로 읽고 싶지는 않네요. 이름을 붙이고 그것을 실제로 사용하는 과정에 DNS라는 친구가 개입합니다. 풀 네임은 Domain Name Server로, Domain에 대응되는 IP 주소를 알려주는 서버입니다. 그러니까, 우리가 웹 브라우저 주소창에 도메인을 입력하면 가장 먼저 DNS에서 그 도메인의 IP 주소를 받아오고, 실제로는 그 IP 주소를 가지고 통신을 하게 되는 것이죠. 세부사항은 제가 곧 네임서버도 구축할 예정이니 그때 언급해 보겠습니다.

1-3. 도메인 계층

저는 평생 쓸 도메인을 생각하고 있어서 이름을 짓는데 참 신중했습니다. 그러면, 또 최상위 도메인이 우리의 가치를 잘 나타내주었으면 하는 소망이 생기죠. 다행히 WHOIS 도메인에서는 '업종별 도메인'이라고, 흔히들 쓰는 최상위도메인을 모아두었더군요.

잠깐 최상위 도메인에 대해 말씀드리겠습니다. 명색이 기술 블로그니까...

인터넷 주소의 맨 앞에는 어떤 프로토콜로 접속할 것인지를 적어 줍니다. ftp일 수도, http일 수도, https일 수도 있는 것이죠. 그리고 그 뒤에 '://'을 더하여 적어줌으로써 '프로토콜 명세를 다 작성하였다.'하고 알립니다. 그 뒤에 오는 것이 도메인입니다.

선에 가려 보이진 않지만 www.google.com 뒤에는 슬래시 문자('/')가 있는데요. 이 뒤의 내용은 '해당 도메인이 가리키는 주소의 서버에 있는 어떤 자원을 가져올 것인가?'를 써 주는 것입니다. 아무 것도 적혀있지 않다면 http나 https 프로토콜로 접속하는 경우 자동으로 index.* 파일을 보여줍니다.

이 사이에 있는 www.google.com이 도메인인데, 이 친구는...

이렇게 나눌 수 있습니다. 맨 뒤(.com)를 우리가 '최상위 도메인(TLD, Top-Level Domain)'이라고 합니다.

TLD 바로 앞에, 왼쪽에 붙어있는 것이 우리가 지어줄 수 있는 '도메인 이름(Domain Name)'이고요. 이 앞에 붙은 것은 전부 서브도메인입니다.

'최상위 도메인'이 있다는 것은 최상위가 아닌 것도 있다는 뜻이죠? 무엇일까요?

...

여기까지 찾아오신 분들이라면 당연히 아실 테죠...? '차상위 도메인(SLD, Second Level Domain)'입니다. 아래와 같은 것들을 보면,

  • co.kr
  • re.kr
  • ac.kr

이런 식인 도메인도 많이 보셨을 건데요. 점('.')으로 구분된 맨 마지막 덩어리의 바로 앞에 있는, 도메인 네임이 아닌 무언가가 차상위 도메인입니다.

1-4. 도메인 쇼핑

살살 살펴보니...

re.kr 도메인이 갖고 싶군요. 선택합니다. 일부 도메인은 자격증명(교육기관, 정부기관)이 있어야 구입할 수 있습니다.

re.kr 도메인의 경우 개인이더라도 연구적인 목적이 있다면 사용할 수 있다고 합니다. 여러 개를 체크할 수도 있는데 저는 쟤에 꽂혀서 쟤만 체크했습니다.

이게 싯가인지...? 요즘 뜨는 .ai, .io같은 도메인은 각각 2년에 29만 원, 1년에 7만7천 원이 넘더라고요. 저랑은 무관하지만요. 이후에 그냥 시키는 대로 정보 입력해서 도메인을 구입했습니다.

  1. 항목 체크 완료 후 페이지 최상단의 검색창에서 구입하고자 하는 도메인의 Domain Name을 입력하고 도메인 검색 버튼을 누릅니다.
  2. 그러면 도메인 구입 가능 여부가 나오고,
  3. 이후로는 자유롭게~

1-5. 주의할 점

WHOIS에서 도메인 정보를 조회해보신 적이 있으신지 모르겠습니다. 도메인 구입 시 입력한 정보가 그 조회에 노출이 됩니다.

여기에 다 노출됩니다. 그러므로 이메일과 이름, 전화번호의 노출을 주의해야 하겠습니다. 저의 경우 메일은 업무용 메일로, 연락처는 세컨폰으로 해 두었습니다.

profile
박한강, 24세.

0개의 댓글