국가별, 기기별, A/B 테스트를 함께 쓰는 Smart Redirect Routing
하나의 캠페인 URL도 국가, 기기, 언어, UTM, A/B 가중치, fallback에 따라 다른 목적지가 필요할 수 있습니다. 이 라우팅 로직을 앱 코드에 숨기지 않고 운영하는 방법입니다.

모든 클릭이 같은 페이지로 가면 리디렉션은 단순합니다. 하지만 카카오톡 공유 링크, QR, 광고, 앱 다운로드, 쇼핑몰 캠페인, 해외 사용자까지 다루면 하나의 URL에도 여러 판단이 필요합니다.
한국 사용자는 iPhone에서 카카오톡 인앱 브라우저로 열 수 있습니다. Android 사용자는 Google Play fallback이 필요할 수 있습니다. 데스크톱은 웹 랜딩 페이지가 맞습니다. 해외 트래픽은 글로벌 페이지나 지원 국가 안내로 보내야 할 수 있습니다. 광고 클릭은 UTM과 click ID를 잃으면 안 됩니다. A/B 테스트라면 재방문자가 같은 variant를 봐야 합니다.
Smart Redirect Routing은 하나의 공개 URL을 단일 destination이 아니라 라우팅 정책으로 운영하는 방식입니다.
UrlEdge는 국가, 기기, 언어, query, header, cookie, 캠페인, A/B 가중치, fallback을 edge rule로 관리합니다. 게시, analytics, rollback도 같은 흐름에 포함됩니다.
링크 뒤에는 정책이 필요합니다
흔한 분산 구조:
- 국가별 리디렉션은 CDN
- 기기별 리디렉션은 앱 middleware
- A/B 테스트는 클라이언트 스크립트
- UTM 처리는 랜딩 페이지
- QR이나 카카오 캠페인 fallback은 문서나 스프레드시트
캠페인이 바뀌면 어느 규칙이 이겼는지 알기 어렵습니다.

| 결정 | 이유 |
|---|---|
| 어떤 source가 match되는가 | 도메인, path, wildcard, regex, 캠페인 slug, QR |
| 어떤 context를 볼 것인가 | 국가, 기기, 언어, OS, browser, query, header, cookie |
| 어떤 조건이 우선인가 | safety, campaign, device, country, A/B, fallback |
| 어디로 보낼 것인가 | 스토어, App Store, Google Play, 랜딩, support, fallback |
| 어떻게 split할 것인가 | A/B 가중치, rollout, canary |
| 무엇을 보존할 것인가 | path, query, UTM, affiliate ID, coupon |
| 어떻게 되돌릴 것인가 | 이전 snapshot, fallback, 캠페인 중지, owner 알림 |
국가별 리디렉션은 목적지가 다를 때만
| 상황 | 좋은 라우팅 |
|---|---|
| 해외 판매 | 국가별 재고, 배송, 통화, 언어에 맞는 storefront |
| 국가별 광고 | 한국, 일본, 미국, 글로벌 페이지를 분리 |
| 미지원 지역 | waitlist, 파트너 페이지, 명확한 안내 |
| 법적 제한 | allowed, blocked, fallback 정책 |
| 고객지원 | 현지 콘텐츠가 있을 때만 현지 페이지 |
Cloudflare Workers는 request.cf 메타데이터로 국가 정보를 제공할 수 있습니다. 하지만 기술적으로 가능하다고 항상 리디렉션해야 하는 것은 아닙니다. SEO에서는 cloaking처럼 보이지 않게 하고 canonical과 fallback을 명확히 해야 합니다.
기기별 라우팅: 앱, 스토어, 웹, 카카오톡

| Context | Destination |
|---|---|
| iOS | Universal Link, 아니면 App Store 또는 모바일 웹 |
| Android | Android App Link, 아니면 Google Play 또는 모바일 웹 |
| Desktop | 웹 랜딩, 가입 페이지, QR handoff |
| Tablet | 보통 desktop web |
| In-app browser | 카카오톡/SNS webview용 bridge page |
| Unknown | 안정적인 web fallback |
Firebase Dynamic Links 종료 이후, 앱팀은 이 fallback 레이어를 직접 운영해야 합니다. UrlEdge는 기기별 리디렉션과 fallback을 맡을 수 있지만, 앱을 직접 열려면 Universal Links와 Android App Links 설정이 필요합니다.
A/B 리디렉션은 목적지 테스트에 맞습니다
적합한 경우:
- 랜딩 A vs B
- 지역 offer vs global offer
- 새 pricing page를 일부 traffic에만 노출
- 새 storefront canary rollout
- 파트너 landing page rotation
제품 내부 실험 플랫폼을 대체하지는 않습니다.

| 결정 | 기본값 |
|---|---|
| 상태 코드 | 임시 테스트는 302 또는 307 |
| 일관성 | 재방문자는 같은 variant |
| SEO | crawler만 다른 경험 금지 |
| canonical | variant URL이 다르면 의도 명확히 |
| 기간 | 오래된 split 방치 금지 |
| rollout | 모니터링 후 단계적으로 증가 |
Google은 사이트 테스트에서 cloaking을 피하고 variant URL로 보낼 때 temporary redirect를 쓰라고 안내합니다.
조건에는 우선순위가 필요합니다
| 우선순위 | 조건 | 예시 |
|---|---|---|
| 1 | Safety/legal | 미지원 국가를 안내 페이지로 |
| 2 | Campaign override | ?campaign=partner 우선 |
| 3 | Device/OS | iOS, Android, desktop 분기 |
| 4 | Country/language | 한국, 해외, global fallback |
| 5 | A/B weight | 자격 있는 traffic만 split |
| 6 | Default fallback | 나머지는 안정적인 URL |
우선순위가 틀리면 A/B가 제외해야 할 traffic을 가져가거나, 기기 규칙이 UTM을 잃게 만듭니다.
UTM과 query도 라우팅입니다
| 정책 | 사용 상황 |
|---|---|
| 모두 보존 | 신뢰할 수 있는 캠페인 source |
| allowlist | UTM, click ID, affiliate ID만 유지 |
| defaults 추가 | 캠페인/채널 표준화 |
| 모두 제거 | 민감한 목적지 |
| rewrite | parameter가 path나 destination 결정 |
광고와 제휴 측정은 리디렉션 단계에서 이미 깨질 수 있습니다.
게시 전 QA

한국/해외/fallback 국가, iOS/Android/desktop/tablet/unknown, UTM 있음/없음, 광고/카카오/QR/organic/affiliate, A/B 재방문, status, hop, priority, fallback, analytics, rollback을 확인하세요.
UrlEdge가 맞는 곳
- Smart Redirect Routing
- Geo Redirects
- Device Targeting
- A/B Testing
- Advanced Redirect Rules
- UTM Builder
- Redirect Checker
- Broken Link Monitor
FAQ
Smart Redirect Routing이 무엇인가요?
하나의 URL을 국가, 기기, 언어, query, campaign, A/B 가중치, fallback에 따라 다른 목적지로 보내는 운영 방식입니다.
국가별 리디렉션과 같은가요?
아닙니다. 국가별 리디렉션은 조건 하나입니다. Smart routing은 여러 조건과 우선순위를 함께 관리합니다.
A/B 리디렉션은 301인가요, 302인가요?
보통 302입니다. 테스트는 임시이기 때문입니다.
References
Edge에서 smart routing 규칙 만들기
국가, 기기, 언어, query, A/B 가중치, fallback을 조합한 리디렉션을 앱 코드 밖에서 관리하세요.
Smart routing 보기관련 글
전체 보기
www, apex, wildcard forwarding에서 SEO를 망치지 않는 방법
Host normalization은 작아 보이지만 root, www, subdomain, path, query가 따로 움직이면 redirect chain이 됩니다. canonical host를 먼저 정해야 합니다.

유료 광고와 제휴 트래픽을 위한 링크 방화벽: 봇, 프록시, 나쁜 클릭 걸러내기
모든 나쁜 클릭이 사기는 아니지만, 광고비와 제휴 수수료, 리포트를 흔들 수는 있습니다. 링크 방화벽은 목적지에 도달하기 전에 트래픽 처리 방식을 정합니다.