도메인과 DNS의 작동 원리: 비개발자를 위한 가이드
도메인은 example.com처럼 사람들이 사이트에 접속할 때 입력하는 이름이고, DNS(도메인 네임 시스템)는 그 이름을 사이트가 실제로 위치한 곳으로 바꿔 주는 인터넷의 주소록입니다. 도메인은 등록 대행사에서 임대하고, DNS 레코드를 추가해서 “웹사이트는 저쪽에 있다”와 “이메일은 이쪽으로 온다”를 알려 줍니다. 앱에 사용자 지정 도메인을 연결하는 일은 대부분 올바른 위치에 올바른 레코드를 추가하고, 그 변경이 적용되기를 기다리는 것입니다.
AI로 만들 때 왜 중요한가
AI 앱 빌더는 앱을 만들고 호스팅할 수 있지만, 도메인은 앱 바깥에 있습니다. 보통 별도의 회사가 관리하고, 낯선 레코드 유형이 가득한 관리 화면에 있습니다. 많은 출시가 여기서 멈춥니다. 앱은 준비되었는데 도메인에 오류가 뜨거나, DNS를 바꾼 뒤에 이메일이 갑자기 작동하지 않는 경우입니다.
조금만 이해하면 큰 도움이 됩니다. 호스트가 어떤 레코드를 요구하는지, 왜 아직 작동하지 않는지, 이미 도메인에 의존하고 있는 것(예: 이메일)을 어떻게 깨뜨리지 않는지 알 수 있습니다.
일상적인 비유
휴대폰의 연락처 목록을 떠올려 보세요.
친구의 전화번호를 외우지 않아도, 이름을 누르면 휴대폰이 번호를 찾아 줍니다. DNS도 인터넷에서 같은 일을 합니다. example.com을 입력하면, DNS가 연결할 서버의 번호(IP 주소)를 찾아 줍니다.
- 도메인은 연락처의 이름입니다.
- 등록 대행사는 그 이름이 당신의 것이라고 공식적으로 기록하는 회사입니다.
- DNS 레코드는 그 이름 아래 저장된 정보입니다. 전화번호, 이메일 주소, 집 주소 같은 것입니다.
- 네임서버는 그 이름의 공식 연락처 목록이 무엇인지 정합니다.
- 캐싱은 휴대폰이 번호를 한동안 기억하는 것입니다. 친구가 번호를 바꿔도, 저장된 사본이 갱신될 때까지 일부 휴대폰은 예전 번호로 계속 전화를 겁니다. 이것이 DNS “전파”입니다.
도메인 이름의 구성 요소
app.example.com을 예로 들면:
| 부분 | 이름 | 참고 |
|---|---|---|
.com | 최상위 도메인(TLD) | 레지스트리가 관리합니다. .org, .io, .ai, .kr 같은 국가 코드도 있습니다 |
example | 2차 도메인 | 직접 등록하는 부분입니다 |
example.com | 루트 또는 “apex” 도메인 | 소유하는 도메인 |
app | 서브도메인 | DNS에서 자유롭게 만듭니다. www, app, shop 등 |
도메인은 완전히 사는 것이 아니라 일정 기간(보통 1년 이상) 등록하고 갱신하는 것입니다. 갱신하지 않고 만료되면 다른 사람이 등록할 수 있습니다.
DNS 조회 작동 원리
누군가 app.example.com을 입력하면:
- 브라우저가 DNS 리졸버(보통 인터넷 제공업체나 공개 서비스가 운영)에 주소를 묻습니다.
- 리졸버에 최신 캐시 답변이 있으면 즉시 응답합니다.
- 없다면 계층 구조를 따라 내려갑니다. 루트 서버가
.com서버를 가리키고,.com서버가 도메인의 네임서버를 가리킵니다. - 네임서버가 설정한 레코드를 반환합니다. 호스트를 가리키는 CNAME이나 IP 주소가 있는 A 레코드일 수 있습니다.
- 리졸버는 답변을 레코드의 TTL(유효 시간) 동안 캐시하고 브라우저에 전달하며, 브라우저는 서버에 연결합니다.
이 모든 과정은 보통 밀리초 단위로 끝납니다.
실제로 쓰게 될 DNS 레코드 유형
| 레코드 | 역할 | 예시 |
|---|---|---|
| A | 이름을 IPv4 주소에 연결 | example.com → 203.0.113.10 |
| AAAA | 이름을 IPv6 주소에 연결 | example.com → 2001:db8::10 |
| CNAME | 이름을 다른 호스트 이름의 별칭으로 만듦 | app.example.com → myapp.host.com |
| MX | 도메인의 이메일을 받을 서버를 우선순위 번호와 함께 지정 | example.com → 10 mail.provider.com |
| TXT | 텍스트를 담으며, 소유권 확인과 이메일 보안에 사용 | v=spf1 include:_spf.provider.com ~all |
| NS | 도메인의 권한 있는 네임서버 목록 | ns1.dnsprovider.com |
| CAA | HTTPS 인증서를 발급할 수 있는 인증 기관을 제한 | 0 issue "letsencrypt.org" |
알아 두면 좋은 규칙 몇 가지:
- CNAME은 다른 레코드와 같은 이름을 가질 수 없습니다. 루트 도메인에는 항상 NS 등 다른 레코드가 있기 때문에 일반 CNAME을 둘 수 없습니다. 많은 DNS 제공업체가 ALIAS, ANAME, CNAME 플래트닝이라는 우회 기능을 제공합니다.
- TXT 레코드는 이메일 관련 작업을 많이 합니다. SPF는 도메인의 메일을 보낼 수 있는 주체를 나열하고, DKIM은 서명을 검증하는 키를 공개하며, DMARC는 이 검사에 실패한 메일을 수신 측이 어떻게 처리할지 알려 줍니다.
- MX 번호가 낮을수록 우선순위가 높습니다. 메일은 가장 낮은 번호부터 시도합니다.
전파와 TTL
“전파”라는 말은 변경 사항이 인터넷 전체로 천천히 퍼지는 것처럼 들리지만, 실제로는 캐싱입니다. 리졸버는 각 답변의 사본을 TTL 동안 보관하고, 그 기간이 지나야 다시 묻습니다. 따라서:
- 한 번도 조회되지 않았던 새 레코드는 보통 몇 분 안에 작동합니다.
- 기존 레코드를 바꾸면 모든 곳에서 보이기까지 예전 TTL만큼 걸릴 수 있습니다.
- 네임서버를 바꾸면 이 레코드는 TLD 수준에서 더 오래 캐시되므로 하루나 이틀까지 걸릴 수 있습니다.
유용한 요령: 계획된 변경 전에 레코드의 TTL을 몇 분 정도로 낮추고, 예전 TTL이 지나기를 기다린 뒤 변경하세요.
실제 예시: 예약 앱을 도메인에 연결하기
yoursalon.com 도메인을 소유하고 있습니다. 현재 웹사이트와 Google Workspace 이메일이 이 도메인을 쓰고 있습니다. 예약 앱을 만들었고 이를 book.yoursalon.com에 두고 싶습니다.
- DNS가 어디서 관리되는지 찾으세요. 등록 대행사일 수도 있고, 별도의 DNS 제공업체일 수도 있습니다. NS 레코드를 보면 알 수 있습니다.
book에 대한 CNAME을 추가하세요. 대상은 앱 호스트가 알려 주는 주소입니다.- 소유권을 증명하기 위해 호스트가 요구하는 TXT 레코드가 있으면 추가하세요.
- MX 레코드와 이메일 TXT 레코드는 그대로 두세요. 손대지 않았으니 이메일은 계속 작동합니다.
- DNS가 갱신된 뒤 호스트에서 확인하세요. 그러면 호스트가
book.yoursalon.com에 대한 HTTPS 인증서를 발급합니다. - 휴대폰의 모바일 데이터로 테스트하세요. 집 Wi-Fi와는 다른 리졸버와 캐시를 사용하기 때문입니다.
앱을 루트 yoursalon.com에 두고 싶다면 A 레코드나 DNS 제공업체의 ALIAS/플래트닝 기능이 필요하며, 이는 현재 웹사이트를 그 자리에서 대체하는 것입니다. 더 자세한 단계는 사용자 지정 도메인 연결 방법을 참고하세요.
자주 하는 실수와 오해
- “도메인과 호스팅은 같은 것이다.” 도메인은 이름이고, 호스팅은 앱이 실행되는 곳입니다. DNS가 둘을 연결합니다.
- 호스트가 CNAME을 요구했는데 A 레코드를 쓰거나(반대의 경우도). 호스트의 안내를 정확히 따르세요.
- 대상 값의 오타. CNAME 대상의 글자 하나가 틀리면 인증이 실패합니다.
- 레코드를 복사하지 않고 네임서버를 바꾸는 것. MX와 TXT 레코드를 새 제공업체에 다시 만들지 않은 채 DNS를 옮기면 이메일이 깨지는 전형적인 원인입니다.
- 필요하지 않은데 프록시를 켜는 것. Cloudflare 같은 일부 DNS 제공업체는 트래픽을 프록시할 수 있습니다. 일부 호스트는 인증서 발급을 위해 레코드를 “DNS only”로 설정해야 합니다.
- “알 수 없는” TXT 레코드를 삭제하는 것. 대개 무언가가 의존하는 소유권 확인이나 이메일 보안 레코드입니다.
- 도메인이 만료되도록 두는 것. 자동 갱신을 켜고, 결제 카드를 최신 상태로 유지하세요.
AI 빌더에게 무엇을 요청할까
DNS는 코드 바깥에 있으므로, 요청 내용은 이것에 “관한” 질문이 되어야 합니다.
- “app.mydomain.com에 필요한 정확한 DNS 레코드가 무엇인가요? 유형, 이름, 값을 알려 주세요.”
- “이 변경이 제 이메일에 영향을 주나요?”
- “레코드를 추가한 뒤 도메인에 오류가 뜹니다. 무엇을 확인해야 하나요?”
- “www와 www가 아닌 주소가 둘 다 같은 사이트를 보여주지 않도록 정식 URL과 리디렉션을 설정해 주세요.”
- “내 도메인에서 이메일을 보내도록 설정해 주세요. 필요한 SPF, DKIM, DMARC 레코드는 무엇인가요?” 앱에서 이메일 보내는 방법을 참고하세요.
Mythex의 사용자 지정 도메인
게시된 모든 Mythex 앱은 yourname.mythex.app 주소를 받습니다. Pro에서는 대신 자신의 도메인을 쓸 수 있습니다. Mythex 안에서 도메인을 구매하거나(등록 비용은 별도 청구되며, 구매한 도메인의 DNS는 Mythex가 관리합니다), 이미 소유한 도메인을 연결할 수 있습니다. 후자의 경우 app.example.com 같은 서브도메인에서 앱의 yourname.mythex.app 주소로 CNAME을 추가하고, Verify를 누르세요. HTTPS 인증서는 자동으로 발급됩니다. DNS가 Cloudflare에 있다면 해당 레코드를 “DNS only”로 설정하세요. 서브도메인을 권장하며, 루트 도메인은 DNS 제공업체의 ALIAS 또는 플래트닝 지원 여부에 따라 달라집니다. 각 단계는 사용자 지정 도메인 문서에서 안내하고, Pro에 포함된 내용은 요금제에서 확인할 수 있습니다.
자주 묻는 질문
DNS를 쉽게 설명하면 무엇인가요?
DNS(도메인 네임 시스템)는 인터넷의 주소록입니다. example.com처럼 사람이 기억하기 쉬운 이름을 컴퓨터가 필요로 하는 정보, 보통 IP 주소로 바꿔서 브라우저가 올바른 서버를 찾을 수 있게 합니다.
A 레코드와 CNAME의 차이는 무엇인가요?
A 레코드는 이름을 IPv4 주소에 직접 연결합니다. CNAME은 이름을 다른 호스트 이름에 연결하고, 그 이후 조회는 그 호스트 이름에서 계속됩니다. 호스트의 IP 주소가 바뀔 수 있을 때 CNAME이 편리하지만, 일반 CNAME은 루트 도메인 자체에는 사용할 수 없습니다.
DNS 전파는 얼마나 걸리나요?
보통 몇 분, 때로는 몇 시간이 걸립니다. 이전 레코드의 캐시 사본이 만료되는 시점에 따라 변경 사항이 보이며, 이는 레코드의 TTL에 달려 있습니다. 네임서버를 바꾸는 경우에는 이 레코드들이 더 오래 캐시되기 때문에 하루나 이틀까지 걸릴 수 있습니다.
웹사이트의 DNS를 바꾸면 이메일이 망가지나요?
이메일이 의존하는 레코드를 바꾸거나 삭제할 때만 그렇습니다. 여기에는 MX 레코드와 SPF, DKIM, DMARC 같은 TXT 레코드가 포함됩니다. www나 app에 CNAME을 추가하는 것은 이메일에 영향을 주지 않습니다. 먼저 해당 레코드를 복사해 두지 않은 채 도메인을 새 네임서버로 옮기면 이메일이 깨질 수 있습니다.
루트 도메인 대신 www나 app을 쓰는 이유는 무엇인가요?
www.example.com이나 app.example.com 같은 서브도메인은 CNAME을 사용할 수 있으며, 많은 호스팅 플랫폼이 이 방식을 요구합니다. 루트 도메인(example.com)은 일반 CNAME을 둘 수 없으므로 A 레코드를 쓰거나, 제공업체별 ALIAS, ANAME, CNAME 플래트닝 기능을 써야 합니다.