글 업데이트 로그
2025.05.23 - 호스트네임 관련 잘못된 내용 수정
2025.04.08 - 글 수정, 가독성 개선
노션 블로그를 만들면서 헷갈리던 내용들을 정리했다.
내가 가비아에서 구매한 도메인의 레코드를 설정했을 때, 뒤에서 어떤 과정들이 발생하는지 궁금했다.
1. 도메인 
우선 도메인에 대한 이해가 필요하다.
내 블로그로 예를 들면 주소가 blog.minsoftk.com 인데,
이 중, minsoftk.com부분을 도메인이라고 한다.
2. 도메인 네임 서비스(DNS)
도메인 네임 서비스란?
•
도메인을 ipv4 주소를 알려주는 서비스
blog.minsofk.com 로 접속했을 때, ip 주소로 변환된다.
왜 필요해?
•
우리는 숫자를 일일이 기억하기 어려워요~(어제 뭐 먹었는지도 기억이 가물가물..)
따라서 google.com 기억하기 쉬운 도메인 네임을 입력하면 DNS 서버가 알아서 ip 주소로 변환
2-1. 트리 구조의 도메인 네임 체계
minsoftk.com 에서 minsoftk가 com에 속하며, 그 하위에 blog가 있다.
(루트)
│
com (최상위 도메인, TLD)
│
minsoftk (2차 도메인)
│
blog (서브도메인)
Scss
복사
호스트네임, 서브도메인
그런데 갑자기 호스트네임과 서브도메인이 헷갈리기 시작한다. 나만 헷갈리나..?
blog.minsoftk.com 을 서브도메인이라고 말하지 않나..?
서브도메인은 말 그대로 도메인 안의 하위 주소
즉, 서브도메인은 ‘주소를 더 구체적으로 나눈 것’
blog.minsoftk.com 에서 blog가 바로 서브도메인 blog.minsoftk.com 가 호스트네임이다.
•
서브도메인: blog
◦
minsoftk.com의 하위 공간, shop.minsoftk.com, dev.minsoftk.com 등등
•
호스트네임: blog.minsoftk.com
◦
blog.minsoftk.com은 서브도메인을 포함한 전체 이름
◦
호스트네임은 특정 서버를 가리키는 이름
2-2. DNS의 동작
KT, LG 같은 통신사 인터넷을 사용하고 있다면, 해당하는 통신사 DNS 서버로 접속하려는 도메인을 요청한다.
그러면 ip 주소를 전달받아, 해당 사이트로 접속!
한번이라도 DNS에 질의를 했다면 www.naver.com이라는 IP 주소는 PC에서 저장을 하고 있다.
이걸 DNS Cache라고 한다. IP 주소와 같이 유효기간을 전달받는다.
•
Local DNS 캐시: 사용자의 ISP(인터넷 서비스 제공자 KT, SKT, LGU+)의 DNS 서버는 한번 이상 요청했던 DNS 정보를 캐싱하여 반환해준다.
•
DNS 캐시에 존재 → Cache-Hit → 바로 접속
2-2-1. 주소의 DNS 확인법
•
터미널에서 nslookup 명령어 사용:
nslookup -type=ns blog.minsoftk.com
Shell
복사
2-2-2. 내 로컬 DNS Cache 확인법 (macOS)
(좀 복잡해서 궁금하다면 아래 링크를 확인)
2-2-3. DNS 분산 구조형 데이터베이스와 동작
수 많은 인터넷 주소를 하나의 데이터베이스에 저장하기는 리스크가 크다.
따라서 아래와 같은 분산 구조의 데이터베이스를 가지고 있으며, 보안이 굉장히 철저하다.
만약에 로컬의 hosts 파일을 조작해 DNS 정보가 변조된다면, 악의적인 목적을 가진 사이트로 연결될 수 있다.
따라서 AhnLab의 보안 프로그램들은 hosts 파일의 변조를 보호한다.
각각의 도메인 네임스페이스에서는 다음과 같이 동작한다.
1.
루트 네임서버는 최상위 도메인(TLD) 서버를 반환
2.
TLD 서버는 일반적으로 google.com의 경우 .com 과 같은 호스트 이름의 마지막 부분을 반환한다.
3.
.com 네임서버는 google.com의 네임서버가 어디에 있는지 알고있다.
동시에 실행이 되는 과정 같지만, 각각의 요청에 따라 DNS recursor가 재귀적으로 반복해서,
DNS 서버에 요청한다.
2-2-4. DNS recursor 과정
(브라우저가 로컬 캐시, hosts 파일, DNS 캐시에 정보가 없다는 것을 가정)
유저가 blog.minsoftk.com 요청 →
루트 네임서버는 TLD 서버(.com)의 IP를 반환 →
.com 네임서버에 minsoftk.com 네임서버 레코드 요청하고, 가비아 네임서버(ns.gabia.co.kr)를 반환 →
가비아 네임서버에 blog.minsoftk.com의 A 레코드를 요청 →
가비아 네임서버가 해당 서브도메인의 IP 주소를 응답 →
브라우저가 IP 주소를 전달받아 HTTP 요청을 보낸다.
.com 네임서버는 minsoftk.com의 네임서버가 어디에 있는지 알고 있다.
네임서버가 “이 도메인은 가비아에서 관리하고 있으니 가비아 네임서버로 가라”고 알려준다.
3. DNS 레코드
위에서 가비아 네임서버에 A 레코드를 요청한다고 했는데,
DNS 레코드는 DNS 서버가 해당 패킷을 받았을 때 어떤식으로 처리할지를 나타내는 지침이다.
3-1. A 레코드
•
도메인 이름 → IP 주소로 연결해주는 레코드
•
minsoftk.com→ 123.45.67.89
3-2. CNAME
•
도메인 이름 → 다른 도메인 이름으로 연결해주는 레코드
•
예를 들면, blog.minsoftk.com → minsoftk.github.io
그러면 내 블로그 주소가 내 깃헙 정적 페이지로 연결된다.
실제 블로그에서는 blog.minsoftk.com을 치면 우피의 노션 호스팅 서버로 연결된다.
3-3. 가비아에서 DNS 설정
가비아에서 도메인을 등록하거나 DNS 레코드를 수정하면 어떤 과정이 발생하는걸까?
사람들이 어떻게 내 블로그 도메인으로 접속이 가능한걸까?
가장 이해가 어려웠던 부분이다.
A 레코드, CNAME 등을 수정하게 되면, 변경 사항이 인터넷 전반으로 전파가 된다.
이 전파에는 시간이 걸리고, 이를 DNS Propagation이라고 한다.
가비아에서 도메인을 등록하고 CNAME 설정을 ‘DNS 관리 툴’에서 추가하면,
DNS 전파 과정을 통해 전 DNS에서 반영되는 과정이 있다.
이 전파 과정은 설정된 TTL(Time To Live)에 따라 다소 시간이 달라진다고 한다.
•
TTL: 특정 DNS 정보(A 레코드, CNAME, MX 등)를 얼마 동안 유지할지를 결정하는 값
(가비아에서 설정 가능하지만 기본이 24시간)
따라서, DNS 전파가 완료되기 전에는 새로운 DNS 정보가 반영되지 않으면 정상적인 접근이 어려울 수 있다.
(기존의 브라우저 캐시, Local DNS 캐시에 남아 있는 경우에만 이전 주소로 접근 가능)
DNS 반영 여부 확인
•
터미널에서 nslookup 명령어 사용
nslookup blog.example.com
Shell
복사
정리
노션으로 블로그를 만들면서 잘 몰랐던 개념들을 정리했는데, 익숙했지만 생각보다 잘 모르는 내용이 많았다.
이번 기회를 통해서 DNS에 대해서 잘 이해하게 된 것 같다.