DNS
DNS는 도메인 이름을 IP 주소로 바꿔 주는 전 세계 분산 데이터베이스이자 질의 규칙입니다. 웹, 메일, API 연결이 모두 DNS 질의에서 시작됩니다.
작성
DNS(Domain Name System)는 사람이 읽는 도메인 이름(example.co.kr)을 컴퓨터가 쓰는 IP 주소(203.0.113.10)로 바꿔 주는 전 세계 분산 데이터베이스이자 그 질의 규칙입니다. 브라우저 접속, 메일 전송, API 호출은 모두 DNS 질의로 시작하므로, DNS가 잘못되면 서버가 정상이어도 서비스는 멈춥니다. 회사 도메인 관리에서 DNS 설정은 등록·갱신만큼 중요한 항목입니다.
두 종류의 서버
| 구분 | 재귀 리졸버 (recursive resolver) | 권한 네임서버 (authoritative nameserver) |
|---|---|---|
| 역할 | 사용자를 대신해 답을 찾아다니고 캐시 | 특정 도메인의 원본 레코드를 보관하고 답변 |
| 누가 운영 | 통신사, 회사 네트워크, 8.8.8.8 같은 공개 리졸버 | DNS 호스팅 업체 또는 도메인 소유자 |
| 도메인 소유자가 설정 | 하지 않음 | 레코드를 여기에 입력 |
도메인 소유자가 관리하는 것은 권한 네임서버 쪽입니다. 리졸버는 사용자 환경마다 다르며 소유자가 손댈 수 없습니다.
질의 흐름 4단계
리졸버가 www.example.co.kr의 주소를 처음 찾을 때 거치는 순서입니다.
루트 서버에 질의
".kr은 누가 담당하는가"를 묻습니다. 루트 서버는 .kr 레지스트리의 네임서버를 알려 줍니다.
레지스트리(TLD) 서버에 질의
".kr 서버에 example.co.kr의 네임서버가 어디인가"를 묻습니다. 레지스트리는 등록 시 지정한 네임서버(위임 정보)를 알려 줍니다.
권한 네임서버에 질의
도메인의 네임서버에 "www.example.co.kr의 A 레코드"를 묻습니다. 여기서 실제 IP 주소가 나옵니다.
캐시 후 응답
리졸버는 받은 답을 TTL 시간만큼 캐시에 두고 사용자에게 돌려줍니다. 그동안 같은 질의는 1~3단계를 건너뜁니다.
캐시와 TTL
리졸버가 답을 캐시하는 시간을 TTL이라고 하며 초 단위로 레코드마다 정합니다. 캐시 덕분에 매번 루트부터 질의하지 않아 빠르지만, 반대로 레코드를 바꿔도 TTL이 끝날 때까지 이전 값을 보는 사용자가 있습니다. 이 현상이 흔히 말하는 DNS 전파입니다.
실무에서 알아둘 것
- 자주 쓰는 레코드는 A(IPv4), AAAA(IPv6), CNAME(별칭), MX(메일), TXT(인증·SPF), NS(네임서버)입니다. 각 레코드의 용도와 작성법은 DNS 레코드 종류에서 다룹니다.
- 웹 빌더, 메일 서비스, 인증서 발급 등 외부 서비스 연결은 대부분 레코드 몇 줄을 추가하는 일입니다. 외부 서비스 연결 가이드를 참고하세요.
- DNS 응답 위조를 막는 서명 체계로 DNSSEC이 있습니다. 레토는 지원 확장자에 한해 DNSSEC 설정을 제공합니다.
- 네임서버 자체를 바꾸는 절차는 네임서버 변경 방법에 있습니다.
자주 묻는 질문
다릅니다. DNS는 이름을 주소로 바꾸는 체계 전체를 가리키고, 네임서버는 그 체계 안에서 특정 도메인의 레코드를 보관하고 답하는 서버입니다. 도메인을 사면 DNS를 쓰기 위해 네임서버를 지정해야 합니다.
등록과 DNS 호스팅은 별개입니다. 레토 대시보드에서 네임서버를 지정하면, 실제 레코드는 그 네임서버를 운영하는 곳에서 관리합니다. 레토도 기본 네임서버(selene.ns.leto.kr, nyx.ns.leto.kr)를 제공하므로, 이를 지정하면 레코드까지 대시보드에서 관리할 수 있습니다.
리졸버가 이전 응답을 TTL 시간 동안 캐시하기 때문입니다. TTL이 3600초라면 최대 1시간, 86400초라면 최대 하루가 지나야 모든 사용자가 새 값을 봅니다. 변경 전에 TTL을 낮춰 두면 이 시간이 줄어듭니다.
관련 가이드
- DNS 레코드 설정 (A, AAAA, CNAME, MX, TXT, SRV)A, AAAA, CNAME, MX, TXT, SRV 레코드가 각각 무엇을 하고 어떤 값을 넣어야 하는지 예시로 정리했습니다. 루트 도메인에 CNAME을 걸 수 없는 이유와 TTL 기준도 함께 다룹니다.
- 네임서버 변경하기레토 대시보드에서 네임서버를 바꾸는 방법과, 바꾸기 전에 새 네임서버에 레코드를 먼저 옮겨 두어야 하는 이유. 반영 시간, 검증 방법, 흔한 실패 원인까지 정리했습니다.
- 외부 서비스에 도메인 연결하기Vercel, Netlify, GitHub Pages, Cloudflare, AWS 같은 외부 서비스에 회사 도메인을 연결하는 방법입니다. A와 CNAME 중 무엇을 쓸지, apex와 www를 어떻게 나눌지, 값을 어디서 복사해 어떻게 확인하는지 정리했습니다.