작업자가 직접 수행한다. 로그인·결제·등록자 정보 입력이 필요하다. 이 문서는 무엇을 왜 고르는지와 절차, 그리고 놓치기 쉬운 지점을 정리한 것이다.
관련: ADR-018 등록 도메인 1개 · ADR-002(철회) · setup.md · worklog.md
등록 도메인 1개(sshwan.com)로 확정했다. 아래 2개 전제 서술은 2026-09-12 이전 판단이며, TLD 선택 기준은 여전히 유효하다 → ADR-018
| 역할 | 호스트 | 성격 |
|---|---|---|
| 광고주 측 | lp. · app. |
first-party. 사용자가 방문하는 곳 |
| 추적 측 | api. |
third-party. 크로스사이트 요청을 받는 곳 |
싼 TLD를 고르고 싶어지지만, 이 프로젝트에서는 TLD가 실험 변수다.
.click .xyz .top .link .site 같은 저가 TLD는 스팸·피싱 비율이 높아 TLD 단위로 차단되는 경우가 많다.
| 차단 주체 | 근거 |
|---|---|
| 광고 차단기(uBlock 등) | 필터 목록에 저가 TLD 패턴이 통째로 들어가는 경우가 있다 |
| 기업·학교 DNS | 신규·저가 TLD를 기본 차단하는 정책이 흔하다 |
| 브라우저 트래커 목록 | 추적 도메인처럼 보이는 이름 + 저가 TLD 조합은 표적이 된다 |
| 메일 서버 | ICANN 인증 메일이 스팸함으로 갈 확률이 올라간다 |
이 프로젝트의 목적은 브라우저가 크로스사이트 쿠키를 어떻게 다루는지 측정하는 것이다. 그런데 TLD 평판 때문에 요청이 막히면 결과가 오염된다.
api.<track>요청이 실패했을 때SameSite때문인지, TLD 차단 때문인지 구분할 수 없다. 측정 도구가 측정 대상에 오염되는 셈이고,failure-scenarios.md의 모든 표가 못 쓰게 된다.
| 선택 | 이유 | |
|---|---|---|
| 추적 도메인 | .com (또는 .net) |
평판이 중립적이어야 한다. 타협 불가 |
| 광고주 도메인 | .com 권장 |
대조군이므로 조건을 같게 둔다. 한쪽만 저가 TLD면 비교가 흐려진다 |
TLD를 아끼면 실험 변수가 는다. 저가 TLD를 피하는 이유 자체가 실험이고, 그 실험을 오염시키는 절약은 절약이 아니다.
이 문서 초안에는 “두 도메인이 서로 무관해 보여야 한다 — 현실의 광고주와 추적 사업자가 그렇듯이”라고 적혀 있었다. 틀렸다.
브라우저의 same-site 판정은 등록 도메인(eTLD+1)만 본다. 두 이름이 의미상 닮았든 아니든 실험 결과는 한 글자도 달라지지 않는다. “무관해 보여야 한다”는 것은 현실감이라는 장식이었고, 이 저장소를 읽는 사람의 이해를 돕는 쪽이 훨씬 값지다.
따라서 이름은 역할이 드러나게 짓는다. 저장소를 처음 보는 사람이 도메인 두 개만 보고도 “아, 이쪽이 광고주고 저쪽이 제3자 수집기구나”를 알 수 있어야 한다.
추적 쪽 이름에 차단 목록이 문자열로 잡는 단어를 넣지 않는다.
track tracking pixel analytics ads adserv
beacon telemetry metrics stats collect tag
이것들은 광고 차단기 필터에 부분 문자열 규칙으로 들어가 있는 경우가 있다. 걸리면 2장에서 말한 것과 같은 문제가 생긴다 — 무엇 때문에 막혔는지 구분할 수 없게 된다.
의도는 다른 단어로 얼마든지 드러낼 수 있다. 중계를 뜻하는 bridge relay hop crossing, 유입 출처를 뜻하는 origin touch path, 역할을 직접 말하는 firstparty thirdparty — 전부 안전하다.
광고주 측 — 콘텐츠 서비스처럼 읽히고 lp. app. 이 자연스러운 이름
| 후보 | 읽히는 의도 |
|---|---|
scrolltoon.com |
세로 스크롤 웹툰 서비스. 짧고 발음이 명확 |
panelhouse.com |
만화 칸(panel) + 하우스 |
toonperiod.com |
연재 회차·기간 뉘앙스 |
readpanel.com |
읽는 행위가 이름에 |
firstpartytoon.com |
역할 직설 — 이쪽이 first-party임을 이름이 말한다 |
추적 측 — 크로스사이트를 건너 전환을 매체로 되돌리는 중계자
| 후보 | 읽히는 의도 |
|---|---|
crossbridge.com |
크로스사이트를 건너는 다리. 이 프로젝트를 한 단어로 요약 |
hopbridge.com |
한 홉 건너가는 중계 |
touchbridge.com |
touchpoint + bridge. 어트리뷰션 어휘 |
originhop.com |
유입 출처(origin)를 넘기는 홉 |
thirdpartyhop.com |
역할 직설 — 제3자임을 이름이 말한다 |
| 조합 | 광고주 | 추적 | 성격 |
|---|---|---|---|
| A (권장) | scrolltoon.com |
crossbridge.com |
서비스는 서비스답게, 추적은 역할이 드러나게. 균형이 좋다 |
| B | firstpartytoon.com |
thirdpartyhop.com |
가장 노골적. 도메인만 봐도 실험 구조가 읽힌다 |
| C | panelhouse.com |
touchbridge.com |
둘 다 실제 서비스처럼 보이면서 의도도 살아 있다 |
B안의 함정 하나: “first-party / third-party”는 상대적 개념이다. 어떤 도메인도 그 자체로 제3자가 아니고, 보고 있는 페이지 기준으로 정해진다. 이름에 박아두면 엄밀히는 범주 오류다. 다만 면접에서 이걸 스스로 짚으면 오히려 좋은 소재가 된다 — “정확한 이름은 아닌데 실험 대상을 드러내려고 그렇게 지었습니다”라고 말할 수 있으면, 개념을 정확히 알고 일부러 단순화했다는 뜻이 된다.
- 가용성 — 짧은
.com은 대부분 선점돼 있다. Route 53 콘솔에서 검색하고, 위 표를 후보 목록으로 써서 되는 걸 고른다 - 차단 여부 — 결제 전에 확인한다. 광고 차단기를 켠 브라우저에서
https://<후보>.com을 열어보고, 차단기의 로그에 잡히는지 본다. 미등록 도메인이라 접속은 실패하지만 차단기가 반응하는지는 보인다 - 발음 — 면접에서 말로 설명할 일이 생긴다. 철자를 불러줘야 하는 이름은 피한다
| 항목 | 비용 | 비고 |
|---|---|---|
| 도메인 등록 | 콘솔 검색 시 표시됨 | 2026-07-01자로 약 267개 TLD 가격이 개정됐다. .com·.org는 $1~2 인상 |
| 호스팅 영역(Hosted Zone) | $0.50 / 영역 / 월 | 도메인 등록 시 자동 생성된다. 2개면 월 $1, 연 $12 |
| DNS 질의 | $0.40 / 100만 건 | 이 프로젝트 규모에선 사실상 0 |
| WHOIS 프라이버시 | 무료 | Route 53은 기본 제공 |
호스팅 영역 비용이 도메인 값에 가려 잘 안 보인다. 2개면 연 $12가 별도로 나간다. 프로젝트가 끝나고 도메인을 놀릴 거라면 호스팅 영역만 삭제해도 과금이 멈춘다.
대안: Route 53에 등록하되 DNS는 다른 곳(무료 DNS)에 두면 호스팅 영역 비용을 없앨 수 있다. 네임서버만 바꾸면 된다. 다만 EC2와 콘솔이 한곳에 있는 편의를 잃으므로, 13일짜리 프로젝트에서는 그냥 Route 53으로 두는 편이 낫다.
- AWS 콘솔 → Route 53 → Registered domains → Register domains
- 이름 검색 → 두 개를 장바구니에 담는다 (한 번에 결제 가능)
- 기간 1년, 자동 갱신은 필요 여부를 판단해 설정한다
- 켜두면 1년 뒤 자동 결제된다. 계속 쓸 게 아니면 끈다
- 등록자 연락처 입력 — 개인정보 보호(Privacy protection) 켜기
- 결제
등록 직후 등록자 이메일로 확인 메일이 온다.
| 기한 | TLD에 따라 3~15일 |
| 놓치면 | ICANN 규정에 따라 도메인이 정지된다 (상태: ClientHold) |
| 정지되면 | DNS가 전혀 응답하지 않는다. 사이트가 통째로 죽는다 |
| 복구 | 링크를 누르면 자동 해제되지만, 그 사이 시간은 날아간다 |
13일짜리 일정에서 도메인 정지는 회복이 안 된다. 등록 직후 메일함과 스팸함을 즉시 확인하고 링크를 누른다. 이걸 오늘 안에 끝낸다. 메일이 안 오면 Route 53 콘솔에서 재발송할 수 있다.
등록이 완료되면 같은 이름의 호스팅 영역이 자동 생성된다. Route 53 → Hosted zones 에서 두 개가 보이는지 확인한다.
EIP를 할당한 뒤 레코드 3개를 만든다.
| 호스팅 영역 | 레코드 이름 | 유형 | 값 |
|---|---|---|---|
<SHOP_DOMAIN> |
lp |
A | <EIP> |
<SHOP_DOMAIN> |
app |
A | <EIP> |
<TRACK_DOMAIN> |
api |
A | <EIP> |
TTL은 60초로 둔다. 초반에 IP를 바꿀 일이 생기면 기본값(300초)은 답답하다.
# 세 줄이 모두 같은 EIP를 뱉어야 한다
dig +short lp.<SHOP_DOMAIN> app.<SHOP_DOMAIN> api.<TRACK_DOMAIN>
# 등록 상태 — ClientHold 가 보이면 ICANN 인증이 안 된 것이다
whois <SHOP_DOMAIN> | grep -i "status\|registrar"
whois <TRACK_DOMAIN> | grep -i "status\|registrar"| # | 확인 | 통과 기준 |
|---|---|---|
| 1 | Route 53 콘솔의 도메인 상태 | 두 개 모두 정상 등록 |
| 2 | ICANN 이메일 인증 완료 | ClientHold 없음 |
| 3 | 호스팅 영역 2개 생성됨 | Hosted zones 목록 |
| 4 | dig 결과가 같은 EIP |
세 호스트 모두 |
| 5 | WHOIS 프라이버시 적용 | 개인 주소·전화가 노출되지 않음 |
DNS 전파가 끝나기 전에는 setup.md 4장(ACME)으로 넘어가지 않는다. DNS가 안 된 상태로 Caddy를 올리면 인증서 발급이 실패하면서 Let's Encrypt 발급 한도만 소모한다.
| 항목 | 내용 |
|---|---|
| 이전 잠금 | 신규 등록 도메인은 60일간 다른 등록기관으로 이전할 수 없다 (ICANN 규정) |
| 환불 | 도메인 등록은 원칙적으로 환불되지 않는다. 철자를 반드시 확인하고 결제한다 |
| 자동 갱신 | 기본 켜짐. 1년 뒤 결제를 원치 않으면 등록 직후 끈다 |
| 삭제 | 도메인은 등록 기간이 끝나야 사라진다. 호스팅 영역만 지우면 DNS 과금은 멈춘다 |
| 항목 | 값 | 근거 |
|---|---|---|
| 등록기관 | AWS Route 53 | EC2와 같은 콘솔. 도구를 늘리지 않는다 |
| 도메인 수 | 2개 | ADR-002 |
| 광고주 측 | sshwan.com |
lp. · m. · app. |
| 추적 측 | sshwan.com |
api. |
| TLD | .com (양쪽) |
위 2장 — TLD 평판이 실험 변수가 되는 것을 막는다 |
| 기간 | 1년 | 최소 단위 |
| 프라이버시 | 켬 | 무료. 개인 주소가 WHOIS에 공개되는 것을 막는다 |
| DNS | Route 53 호스팅 영역 | 호스팅 영역 비용(연 $12)을 감수하고 단순함을 택한다 |
후보 단계에서는 scrolltoon · crossbridge 같은 도메인 색이 있는 이름을 검토했다. 기각한 이유는 수명이다.
- 이 서버는 면접이 끝나면 내린다. 그런데 도메인은 1년을 산다
- 웹툰 색이 있는 이름은 프로젝트가 끝나면 쓸 데가 없다
- 별명 기반 이름은 개인 인프라로 남는다 —
sshwan.com은 개인 사이트로,sshwan.com은 API·정적 자산 전반으로
역할은 등록 도메인이 아니라 서브도메인이 말한다. lp. 와 api. 가 이미 그 일을 하므로 이름에 역할을 또 넣을 필요가 없다.
2장의 "이름에서 역할이 드러나게" 지침은 여기서 수명 관점으로 대체된다. 실험에는 영향이 없다 — 브라우저는 등록 도메인만 본다.
다만 TLD 규칙은 그대로 유효하다. 추적 도메인이
.com이어야 하는 이유는 이름과 무관하게 남는다.
── 광고주 측 (first-party) ────────────
sshwan.com 루트. 프로젝트 기간에는 lp. 로 302
(나중에 개인 사이트로 교체 — nginx.conf 의 루트 블록만 바꾸면 된다)
lp.sshwan.com 랜딩 · 브리지 302
m.sshwan.com 모바일 — UA 302 분기 대상
app.sshwan.com 서비스 · 가입 · 결제
── 추적 측 (third-party) ──────────────
api.sshwan.com 수집 API · track.js 서빙
인증서는 도메인별로 두 장이다. sshwan.com 쪽은 루트를 포함해 4개 호스트를 한 장에 담는다.
진행 상황은 worklog.md에 기록한다.