가이드 / Finipage / 공개하기

정적 사이트에 내 도메인 연결하기 (DNS 설정 안내)

Qorlize 팀 작성 · 마지막 검토

Finipage 가이드 · HTML 파일을 코드 없이 고치는 편집기. Finipage 열기

코드 편집기나 Finipage로 페이지를 고쳐 저장하고, 폴더째 정적 호스팅에 올렸습니다. 지금 주소는 seoul-bakery.netlify.app이나 kimbakery.github.io 같은 모양입니다. 이제 www.seoulbakery.com으로 들어와도 같은 페이지가 보이게 하고 싶습니다. 도메인은 가비아, 카페24, 후이즈 같은 곳에서 이미 샀습니다. 남은 일은 호스팅 쪽에 도메인을 알려 주고, 도메인 업체 쪽에 DNS 레코드 한두 줄을 넣는 것입니다. 입력은 5분이면 끝나지만, 칸의 의미와 기다릴 시간을 몰라 헤매기 쉽습니다.

DNS가 하는 일

컴퓨터끼리는 203.0.113.25 같은 IP 주소로 서로를 찾습니다. DNS는 사람이 읽는 이름을 이 숫자로 바꿔 주는 전화번호부입니다. 누군가 도메인을 입력하면 브라우저가 DNS 서버에 "www.seoulbakery.com은 어디 있나요?" 하고 묻고, 그 답은 도메인 업체의 DNS 관리 화면에 내가 적어 둔 레코드에서 나옵니다.

레코드 한 줄에는 보통 세 칸이 있습니다.

  • 호스트(이름, 서브도메인이라고도 부름): 도메인 앞에 붙는 부분입니다. www 같은 값이고, 비워 두거나 @를 넣으면 도메인 자체를 뜻합니다.
  • 타입: 어떤 종류의 답인지입니다. 주로 A 아니면 CNAME입니다.
  • 값(데이터, 대상, 위치라고도 부름): 그 이름이 어디로 가야 하는지입니다.

A 레코드와 CNAME 레코드

A 레코드는 이름을 IP 주소에 바로 연결합니다. 어디서나 되지만, 호스팅 업체가 서버를 옮기면 내 레코드는 옛 주소를 가리킨 채 남고 사이트는 내가 알아챌 때까지 열리지 않습니다.

CNAME 레코드는 이름을 다른 이름에 연결합니다. 예를 들어 www → seoul-bakery.netlify.app 같은 식입니다. 브라우저는 두 번째 이름을 다시 조회해 IP를 얻습니다. 호스팅 쪽이 서버를 바꿔도 자동으로 따라가므로, 정적 호스팅 대부분은 www에 CNAME을 걸라고 안내합니다.

단, CNAME이 걸린 이름에는 다른 레코드를 함께 둘 수 없다는 규칙이 있습니다. 맨 도메인에는 도메인이 작동하는 데 필요한 SOA·NS 레코드가 늘 있고, 회사 메일을 쓴다면 MX 레코드도 있습니다. 그래서 규칙상 맨 도메인에는 CNAME을 넣을 수 없습니다. 일부 DNS 업체는 ALIAS, ANAME, CNAME 평탄화(flattening) 같은 기능으로 이를 우회합니다. 가비아와 카페24의 DNS 안내서에는 A, CNAME, MX, TXT, SRV 등만 있고 ALIAS 유형은 없으니, 국내 업체라면 안내서에 따로 적혀 있지 않은 한 없다고 보는 편이 안전합니다.

넣어야 할 값은 호스팅 화면에 나옵니다

순서는 어느 호스팅이나 같습니다. 먼저 호스팅의 도메인 설정 화면에 내 도메인을 등록하고, 그 화면이 알려 주는 레코드를 도메인 업체에 넣습니다. 정확한 값은 언제나 그 화면이 기준입니다. 블로그 글에서 본 값을 그대로 베끼지 마십시오. 대략 이런 모양을 보게 됩니다.

호스팅도메인 등록 위치www에 넣는 레코드(예)
GitHub Pages저장소 Settings → Pages → Custom domain아이디.github.io로 CNAME(저장소 이름은 빼고)
Netlify프로젝트의 Domain management사이트이름.netlify.app으로 CNAME
Cloudflare PagesWorkers & Pages → 프로젝트 → Custom domains프로젝트이름.pages.dev로 CNAME
국내 웹호스팅호스팅 관리 화면업체가 주는 IP로 A 레코드인 경우가 많음

맨 도메인은 업체마다 다릅니다. GitHub Pages는 문서에 A 레코드 네 개(185.199.108.153 ~ 185.199.111.153)를 안내하고, Netlify는 ALIAS를 못 쓰는 경우 75.2.60.5로 A 레코드 하나를 넣으라고 안내합니다. Cloudflare Pages는 맨 도메인이 내 Cloudflare 계정의 영역(zone)이어야, 즉 네임서버를 Cloudflare로 옮겨야 연결됩니다. 주소는 이 글보다 호스팅의 최신 문서에서 복사하십시오.

www 주소와 맨 도메인

국내 도메인 업체를 쓴다면 맨 도메인은 두 가지 중 하나로 처리합니다.

  1. 호스팅이 A 레코드를 알려 주는 경우. GitHub Pages나 Netlify라면 www는 CNAME으로, 호스트 칸 @에는 호스팅이 알려 준 A 레코드를 넣습니다. A 레코드는 어느 업체 화면에서나 되므로 대개 이 방법이 가장 깔끔합니다.
  2. 그렇지 않은 경우. 네임서버를 옮기지 않고 Cloudflare Pages를 쓴다면 www 없는 seoulbakery.com을 도메인 업체의 포워딩(주소 넘기기) 기능으로 www 주소에 넘깁니다.

포워딩은 도메인 업체가 대신 운영하는 작은 이동 서비스라 한계가 있습니다. 가비아와 카페24 안내서 모두 포워딩이 HTTPS를 지원하지 않는다고 밝히고 있어, https://seoulbakery.com으로 들어온 방문자에게 인증서 경고가 뜰 수 있습니다. 카페24는 포워딩을 쓰려면 네임서버를 포워딩 전용으로 바꿔야 하니, www 레코드가 계속 작동하는지 업체에 확인하십시오. 명함이나 홍보물에는 어느 쪽이든 www 주소를 적으십시오.

TTL과 적용 시간

모든 레코드에는 초 단위의 TTL 값이 있습니다. 전 세계 DNS 서버가 예전 답을 얼마 동안 기억해도 되는지를 정하는 값입니다. TTL이 3600이면, 1분 전에 내 도메인을 조회한 서버는 최대 한 시간 동안 예전 답을 계속 쓸 수 있습니다.

새로 만든 레코드는 대개 몇 분 안에 작동합니다. 이미 있던 레코드를 바꿀 때는 예전 TTL만큼 걸릴 수 있고, 업체가 변경 사항을 반영하는 데 시간이 걸리기도 합니다. 호스팅을 옮길 계획이라면 하루 전에 TTL을 300으로 낮춰 두십시오. 처음 설정했다면 몇 시간은 기다린 뒤에 문제를 찾아도 늦지 않습니다.

연결됐는지 확인하는 방법

Windows는 명령 프롬프트, macOS는 터미널을 열고 다음을 입력합니다.

nslookup www.seoulbakery.com
nslookup -type=CNAME www.seoulbakery.com 8.8.8.8

첫 줄은 내 컴퓨터가 평소 쓰는 DNS로, 둘째 줄은 Google 공개 DNS 서버에 CNAME을 콕 집어 묻습니다. 제대로 됐다면 canonical name 항목에 호스팅이 알려 준 대상(예: seoul-bakery.netlify.app)이 나옵니다. "Non-existent domain" 이 나오면 레코드가 아직 없거나 호스트 칸을 잘못 적은 것입니다.

온라인 DNS 확인 사이트는 여러 나라의 서버에 한꺼번에 물어봐 주므로 변경이 어디까지 퍼졌는지 볼 수 있습니다. 거기서는 다 맞게 나오는데 내 브라우저만 안 열린다면 브라우저 캐시를 지우거나 와이파이를 끈 휴대폰으로 열어 보십시오.

HTTPS 인증서는 마지막에 붙습니다. 호스팅 쪽은 도메인이 자기를 가리키는 것을 확인한 뒤에야 인증서를 발급하므로, DNS가 막 작동한 직후 몇 분간 "연결이 비공개로 설정되어 있지 않습니다" 경고가 뜨는 것은 정상입니다. 한 시간 넘게 계속되면 레코드와 함께 호스팅의 도메인 화면도 보십시오. 인증서 상태가 대개 거기 표시됩니다.

자주 하는 실수

  • 호스팅 쪽 등록을 빼먹는 경우. DNS는 완벽한데 호스팅이 띄우는 "사이트를 찾을 수 없음"이나 404 화면만 나온다면, 호스팅이 이 도메인을 어느 프로젝트에 붙일지 모르는 상태입니다. 호스팅 설정에도 도메인을 등록하십시오.
  • 호스트 칸에 도메인 전체를 넣는 경우. 업체 화면은 내 도메인을 뒤에 자동으로 붙입니다. 호스트에 www.seoulbakery.com을 넣으면 www.seoulbakery.com.seoulbakery.com이 만들어집니다. www만 넣으십시오.
  • www에 남아 있는 예전 레코드. 도메인을 새로 사면 업체가 기본 A 레코드나 파킹 페이지를 걸어 두는 경우가 많습니다. www에 A 레코드가 남아 있으면 CNAME이 저장되지 않거나 무시됩니다. 지우고, www에 걸린 파킹·포워딩 설정도 끄십시오.
  • 값 끝의 점. DNS에서 seoul-bakery.netlify.app.처럼 끝에 점이 있으면 "정확히 이 이름"이라는 뜻입니다. 점을 꼭 넣어야 하는 화면도, 알아서 붙여 주는 화면도 있고, 점이 없으면 내 도메인을 뒤에 이어 붙이는 화면도 드물게 있습니다. 저장한 뒤 값이 어떻게 표시되는지 보고, 내 도메인이 덧붙어 있으면 고치십시오.
몇 시간이 지나도 열리지 않으면 위의 두 번째 nslookup 결과를 호스팅 도메인 화면의 값과 한 글자씩 맞춰 보십시오. 다른 부분은 거의 항상 앞의 실수 가운데 하나입니다.

아직 페이지를 올리지 않았다면 무료 호스팅 비교부터 보십시오. 도메인이 열리면 주소를 알리기 전에 랜딩 페이지 공개 전 체크리스트을 한 번 훑어보십시오.

내 파일로 바로 해 보려면 Finipage 편집기를 여세요. 브라우저에서 돌아가고 파일은 내 기기 밖으로 나가지 않습니다.