letter

새 글을 메일로 받아보세요

한 달에 한 번, 그달의 글을 추려 보내드립니다.

메일로 구독하기
티스토리 블로그 개인 도메인 연결하기

STUDY/티스토리 셋업

티스토리 블로그 개인 도메인 연결하기

블로그를 운영하다 보니, 어느 날 주소가 눈에 들어옵니다.

 

frme.tistory.com

 

내 글이 사는 집인데, 문패에 남의 이름이 절반입니다. 사실 길이로 치면 70% 정도는 남의 이름입니다.

tistory.com은 카카오 것입니다. 저는 거기 세 들어 사는 셈입니다. 블로그를 만들고 글을 쓰는 건 저인데, 주소는 빌린 것입니다.

월세는 아니고 전세 정도의 느낌이 듭니다. 내 집 마련의 꿈이 블로그에서도 발현되는 게 한국인의 특성인가 싶습니다.

 

그래서 개인 도메인을 붙이기로 했습니다.

언젠가 플랫폼을 옮기더라도 주소만은 그대로 들고 가고 싶었고, 무엇보다 이 기록이 오래 남았으면 했습니다.

우체국이 사라져도 주소는 내 것이어야 하니까요. 수취인 불명이란 상황을 맞닥뜨리고 싶지 않았습니다.

 

결론부터 말하면, 하루 만에 됐습니다.

그 하루 동안 몇 번 헛다리를 짚었습니다.

이 글은 그 헛다리들에 대한 기록이기도 합니다.

 

 1. 도메인을 산다

가장 먼저 한 일은 도메인을 고르는 것이었습니다. 제 경우 후보가 셋이었습니다.

 

fr.me.kr — `fr.me`로 끊으면 FRME가 완성됩니다. 위트는 셋 중 최고입니다. 만원대.

frme.me.kr — 같은 계열인데 풀네임입니다. 위트가 사라집니다. 역시 만원대.

frme.blog — `.blog`라는 꼬리가 하는 일을 정확히 설명합니다. 7만원대.

 

`fr.me.kr`의 재치에 한참 끌렸습니다. 그런데 한 가지가 걸립니다. 누군가 이 주소를 귀로 듣고 손으로 친다면, 십중팔구 `frme.kr`이나 `frme.me.kr`로 잘못 칠 것입니다. 점이 어디 찍히는지는 들리지 않으니까요.

`fr.me`의 위트는 눈으로 봐야 작동하는데, 주소는 보통 귀로 전해집니다

입으로 정확하게 소리 내어 읽어봐도 좀 그렇습니다. 에프알닷. 엠이닷. 케이알.

닷이 두번 들어가면서 혀끝이 입천장을 차고 앞니를 두드릴 때마다 멈칫하는 느낌. 한 문장에 쉼표가 과하게 들어간 느낌입니다.

 

위트 하나를 위해 매번의 정확함을 내주는 셈이었습니다.

주소는 평생 쓰는 것이고, 한순간의 재치보다 매번의 뚜렷함이 낫습니다.

결국 `frme.blog`로 갔습니다.

 

참고로 `.blog` 같은 신생 최상위 도메인은 첫해 가격과 갱신 가격이 다른 경우가 있다고 합니다.
결제 전에 갱신가를 확인하는 게 이후의 부담을 줄이고, 도메인 유지 가능성도 높아집니다.

 

결제하고 나면 도메인이 바로 관리 목록에 안 뜹니다. 등록 기관에 신청이 들어가 처리되는 데 시간이 걸립니다.

보통 몇십 분, 신생 도메인은 좀 더 걸립니다.

조바심내지 않고, 명경지수의 마음으로 다리를 떨면서 기다리니, 결국 10분 만에 제 계정에 도메인이 등록되었습니다.

 

이제 frme.blog는 제겁니다.

 

2. DNS를 연결한다

도메인이 떴으면, 이제 "이 주소로 들어오면 내 티스토리를 보여줘"라고 길을 놔줘야 합니다. 이게 DNS 설정입니다.

티스토리 관리블로그개인 도메인 설정에 가면, 도메인 등록 업체별로 어떻게 해야 하는지 친절한 안내가 나옵니다. A 레코드가 아닌 CNAME 레코드를 넣으라고 하네요.

 

여기서 첫 번째 헛다리를 짚었습니다.

처음에 저는 호스트를 `@` 하나만, 값을 `blog.tistory.com.`으로 넣었습니다. 티스토리 안내를 보면 연결 값은 `host.tistory.io` 또는 `blog.tistory.com` 중 택1이라 틀린 건 아니었지만, `host.tistory.io`가 개인 도메인 연결 전용 주소라 더 안정적입니다. 그리고 `www`를 빠뜨렸습니다. 이러면 누군가 `www.frme.blog`를 쳤을 때 길이 없습니다.

 

두 가지를 고쳤습니다. `@` `www` 둘 다 넣고, 값은 `host.tistory.io.`로 통일했습니다.

DNS · CNAME 레코드 설정
타입
호스트
값/위치
CNAME
@
host.tistory.io.
CNAME
www
host.tistory.io.
호스트 @는 루트(frme.blog), www는 www.frme.blog · 값 끝의 마침표(.)를 빠뜨리지 말 것

끝에 마침표(.)를 빠뜨리지 마시기 바랍니다. `host.tistory.io.` 끝에 마침표가 있어야 합니다. 티스토리 블로그 안내에는 "콤마"라고 적혀 있는데, 콤마가 아니라 마침표입니다. 오타인 듯 합니다. 최소 몇 년째 안 고쳐진 것 같은데, 다들 잘 쓰는 걸 보면 역시 이 업계는 저처럼 매뉴얼을 읽지 않는 사람이 대부분인 것 같습니다.

 

참고로 DNS 사업자에 따라 루트 도메인에 CNAME을 허용하지 않거나 ALIAS, ANAME, CNAME flattening 같은 방식으로 처리하는 경우가 있습니다. 제 경우는 가비아 기준입니다. 타 사업자의 경우 티스토리 블로그의 안내를 따르시기 바랍니다. 

 

3. HTTPS를 기다린다

DNS를 저장하고 의기양양하게 `https://frme.blog`를 쳤더니, 브라우저가 말합니다.

유효한 인증서를 찾을 수 없습니다.

 

순간 뭔가 잘못한 줄 알았습니다. 아닙니다. 이건 정상입니다.

 

HTTPS는 도메인만 연결한다고 켜지지 않습니다. 그 도메인 전용 보안 인증서(SSL)가 따로 발급돼야 합니다. 티스토리는 개인 도메인을 연결하면 인증서를 자동으로 발급해주는데, 즉시 해주지는 않습니다. 방금 넣은 DNS 설정이 인터넷 전체에 퍼지는(전파) 시간이 필요하고, 그게 끝나야 인증서가 발급됩니다.

 

그러니 할 일은 하나입니다. 기다립니다. 새로고침을 백 번 눌러도 빨라지지 않습니다. 몇 십 분에서 몇 시간. 티스토리 개인 도메인 설정 화면에서 "보안 접속 인증서: 발급 완료"가 뜨면 그때 켜진 것입니다.

 

제 경우 두 시간쯤 지나니 주소창에 자물쇠가 붙었습니다.

 

4. 함정 주의 - 강제 리디렉트 코드는 넣으면 안 된다

여기서부터가 이 글을 쓴 진짜 이유입니다.

 

HTTPS까지 켜지고 나서, 한 가지가 마음에 걸렸습니다. 기존 frme.tistory.com 주소가 그대로 살아 있습니다.

새 주소로 자동으로 넘어가야 할 것 같은데 안 넘어갑니다.

리디렉션이 기본으로 제공되는 게 아닌가 싶어서 검색해보니 강제로 리디렉션하는 자바스크립트 코드를 티스토리 블로그 스킨에 넣으라는 글들이 보였습니다. 심지어 이런 글들이 많습니다. 꼭 해야하는 작업이라고 강조하는 내용도 있습니다. 

 

사실 넣을 뻔했는데 넣지 않았습니다. 자바스크립트 코드 검증을 위해 AI에게 물어봤는데, 안된다고 말렸거든요.

어찌나 간곡하게 말리던지 대화창에서 땀이 보이는 것 같았습니다.  

티스토리에 개인 도메인으로 향하는 강제 리디렉트 자바스크립트를 넣는 것은 서비스 약관 위반(티스토리 운영 정책 2조 15항)이고, 계정이 정지될 수 있다고 합니다.

티스토리는 서버 접근 권한을 주지 않기 때문에 사용자가 할 수 있는 건 자바스크립트 리디렉션뿐인데, 그게 막혀 있습니다.

그러니까 저는 주소를 지키려다 하마터면 계정 전체를 위험에 빠뜨릴 뻔했습니다. 과유불급이라는 말이 이렇게 쓰입니다.

 

답은 리디렉트가 아니라 canonical 태그였습니다.

티스토리는 개인 도메인을 연결하면 글마다 canonical 태그를 자동으로 답니다.

이게 검색엔진에게 "이 글의 대표 주소는 frme.blog"라고 알려줍니다.

301 리디렉트가 하던 일을, 티스토리에서는 canonical이 대신합니다. 그래서 옛 주소가 브라우저에서 즉시 안 튕겨도 검색엔진은 canonical을 읽고 새 주소로 평가를 모읍니다.

 

확인하는 법은 간단합니다. 새 주소로 글을 하나 열고, 페이지 소스 보기에서 `canonical`을 찾습니다. 제 경우 href가 이번에 등록한 frme.blog로 되어 있었고, 정상적으로 잡힌 상태였습니다. DEFAULT_URL https://frme.blog, canonical https://frme.blog/##으로 제대로 잡혀 있었습니다.

 

5. 검색엔진에 새 주소를 알린다

마지막으로 검색엔진에게 이사를 알립니다. , 이건 HTTPS가 켜지고 새 주소가 제대로 열리는 걸 확인한 다음에 합니다.

 

구글 서치콘솔 - 새로 "도메인 속성"에 새 주소를 추가합니다. 구글이 주는 TXT 레코드 값을 가비아 DNS에 추가(타입 TXT, 호스트 `@`, 끝점 없음)하면 소유권이 확인됩니다. 그 다음 사이트맵(`sitemap.xml`)을 제출합니다.

 

네이버 서치어드바이저 – 네이버 서치어드바이저는 메타 태그에 등록하는 방법으로 소유권 인증을 합니다. 티스토리 메타 태그 플러그인을 쓰거나, 직접 스킨에 코드를 입력해 새 주소를 등록하고 사이트맵을 제출합니다.

 

기존 등록된 `frme.tistory.com` 정보는 지우지 않았습니다. 옛 주소의 색인이 새 주소로 넘어가는 과정을 지켜볼 수 있고, 지운다고 검색엔진에서 도메인 이전이 빨라지지도 않습니다. 몇 달 두고, 검색에서 옛 주소가 거의 사라진 걸 확인한 다음에 지워도 늦지 않습니다.

 

한 가지 한계점은 네이버는 개인 도메인을 연결해도 꽤 오랜 기간 옛 티스토리 주소를 검색 결과에 계속 노출합니다. 이건 티스토리가 아니라 네이버 쪽 문제라서, 카카오도 네이버에 직접 문의하라고 안내합니다. 어쩔 수 없는 부분이니 등록만 해두고 기다리는 수밖에 없습니다.

 

그리고 구글 애널리틱스를 이미 등록한 상태라면 손댈 필요 없습니다. 추적 코드는 스킨에 박혀 있으므로, 어느 주소로 들어오든 같은 스킨이 로드되면 데이터는 동일하게 쌓입니다.

 

정리

 해야 할 일을 순서대로 추리면 이렇습니다.

1. 도메인을 산다. (기준은 없습니다. 마음에 드는 주소로)
2. DNS에 CNAME을 넣는다. (호스트는 `@`와 `www`, 값은 `host.tistory.io.`, 끝에 마침표)
3. HTTPS 인증서가 발급될 때까지 기다린다.
4. 강제 리디렉트 코드는 넣지 않는다. canonical이 알아서 한다.
5. 구글, 네이버에 새 주소를 등록하고 사이트맵을 제출한다. 기존 등록은 그대로 둔다.

 

대부분의 단계는 설정하고 기다리는 일입니다. 조바심을 내면 새로고침만 늘어납니다.

돌아보면 이 작업에서 제가 한 실수는 전부 빨리 끝내려고 생긴 것이었습니다. 값을 대충 넣고, 코드를 급하게 퍼오고 당황했습니다.

정작 일을 풀어준 건 매번 한 박자 멈추고 이게 맞는 방향인가를 확인한 순간들이었습니다.

 

티스토리 블로그에 개인 도메인을 다는 일도, 결국 그런 종류의 일이었습니다

검색하면 누구나 같은 답을 말하는데, 정작 맞는 답이 그 안에 없을 때가 있습니다.

이번에도 문제를 해결한 건 더 많은 설정과 더 많은 코드가 아니라, 한 번 더 확인해 보는 일이었습니다.

 

.