ViaLinkBeta

ARCHITECTURE

시스템 아키텍처

ViaLink은 링크 생성부터 클릭 라우팅, 디퍼드 딥링킹, 어트리뷰션까지 전체 딥링크 파이프라인을 하나의 플랫폼으로 제공합니다.

계층 구조

각 계층은 독립적으로 확장 가능하며, 명확한 인터페이스로 연결됩니다.

클라이언트 계층

iOS SDK (Swift)

Universal Link 처리, 디퍼드 딥링킹, 이벤트 수집

Android SDK (Kotlin)

App Link 처리, 디퍼드 딥링킹, 이벤트 수집

Web SDK (TypeScript)

클릭 추적, 스마트 배너, 플랫폼 감지

React Native / Flutter / Unity

네이티브 SDK 브릿지, 크로스플랫폼 지원

라우팅 엔진

User-Agent 파싱

iOS / Android / 웹 / 봇 자동 분기

인앱 브라우저 감지

카카오톡, Instagram, Facebook 등 인앱 환경 처리

AASA / assetlinks.json

Universal Link, App Link 동적 생성

OG 메타 렌더링

봇/크롤러 감지 시 Open Graph 태그 제공

API 계층

Link CRUD API

딥링크 생성, 조회, 수정, 삭제 (REST)

Resolve API

short code로 딥링크 데이터 조회 (/v1/resolve)

Open API

디퍼드 딥링킹 핑거프린트 매칭 (/v1/open)

Events API

클릭, 설치, 전환 이벤트 수집 (/v1/events)

데이터 계층

PostgreSQL

앱, 링크, 이벤트 등 운영 데이터

Redis

핑거프린트 캐시 (72h TTL), 링크 캐시, 세션

ClickHouse (계획)

실시간 분석, 채널별/캠페인별/국가별 어트리뷰션

Kafka (계획)

이벤트 스트리밍, 비동기 처리 파이프라인

주요 데이터 플로우

딥링크 클릭에서 전환까지, 각 단계별 데이터 흐름을 설명합니다.

클릭 리다이렉트 플로우

  1. 1사용자가 딥링크 클릭 (vialink.app/:slug/:code)
  2. 2라우팅 엔진이 User-Agent 파싱
  3. 3플랫폼별 분기: iOS → Universal Link / Android → App Link / Web → 302
  4. 4인앱 브라우저 감지 시 중간 랜딩 페이지 제공
  5. 5클릭 이벤트 기록 (IP, UA, Referer, 타임스탬프)

디퍼드 딥링킹 플로우

  1. 1클릭 시 핑거프린트 생성 (IP + OS + 모델 + 해상도 등 44bit 엔트로피)
  2. 2핑거프린트를 Redis에 저장 (72h TTL)
  3. 3앱 미설치 시 → 앱스토어/플레이스토어 리다이렉트
  4. 4앱 설치 후 첫 실행 → SDK가 핑거프린트 재생성
  5. 5서버에서 핑거프린트 매칭 (IDFA/GAID 확정적 매칭 우선)
  6. 6매칭 성공 시 원래 딥링크 데이터 반환 → 의도한 화면으로 이동

어트리뷰션 플로우

  1. 1링크 생성 시 campaign, channel, feature 파라미터 설정
  2. 2클릭 이벤트에 어트리뷰션 메타데이터 기록
  3. 3설치/전환 이벤트 발생 시 Last-Touch 모델로 채널 매핑
  4. 4대시보드에서 채널별, 캠페인별, 국가별 성과 확인

성능 목표

P99 < 100ms

클릭 리다이렉트 지연시간

Go 라우팅 엔진 + Redis 캐시로 초저지연 달성

99.9%

서비스 가용성

다중 가용 영역 배포, 헬스체크 기반 자동 복구

72h

디퍼드 매칭 윈도우

핑거프린트 TTL 기반 확률적 매칭