> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# bitdrift 모바일 세션과 ClickStack 추적 연관시키기

> 모바일 텔레메트리를 내보내지 않고 OpenTelemetry 추적 컨텍스트를 사용해 bitdrift 모바일 세션을 ClickStack의 backend 추적과 연관시킵니다

export const PartnerBadge = () => {
  return <div className="PartnerBadge">
            <div className="PartnerBadgeIcon">
                <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
                    <polyline points="12.5 9.5 10 12 6 11 2.5 8.5" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" strokeWidth="1" />
                    <polyline points="4.54 4.41 8 3.5 11.46 4.41" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" strokeWidth="1" />
                    <path d="M2.15,3.78 L0.55,6.95 A0.5,0.5 0,0,0 0.77,7.62 L2.5,8.5 L4.54,4.41 L2.82,3.55 A0.5,0.5 0,0,0 2.15,3.78 Z" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" strokeWidth="1" />
                    <path d="M13.5,8.5 L15.23,7.62 A0.5,0.5 0,0,0 15.45,6.95 L13.85,3.78 A0.5,0.5 0,0,0 13.18,3.55 L11.46,4.41 Z" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" strokeWidth="1" />
                    <path d="M11.5,4.5 L9,4.5 L6.15,7.27 A0.5,0.5 0,0,0 6.24,8.05 C7.33,8.74 8.81,8.72 10,7.5 L12.5,9.5 L13.5,8.5" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" strokeWidth="1" />
                    <polyline points="7.75 13.5 5.15 12.85 3.5 11.67" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" strokeWidth="1" />
                </svg>
            </div>
            파트너 통합
        </div>;
};

export const Image = ({img, alt, size = "lg"}) => {
  const normalizedSize = ["sm", "md", "lg"].includes(size) ? size : "lg";
  return <div className={`ch-image-${normalizedSize}`}>
      <Frame>
        <img src={img} alt={alt} />
      </Frame>
    </div>;
};

<PartnerBadge />

<Info>
  **요약**

  이 가이드에서는 OpenTelemetry 추적 컨텍스트를 사용하여 bitdrift 모바일 세션을 ClickStack에 이미 저장된 백엔드 트레이스와 연관시키는 방법을 설명합니다. 모바일 텔레메트리는 bitdrift에 그대로 유지되며 ClickStack으로 내보내지지 않습니다. 다음 방법을 알아봅니다.

  * 모바일 앱에서 bitdrift의 네트워킹 및 트레이싱 통합을 활성화합니다
  * bitdrift 테넌트에서 트레이싱을 활성화하고 딥 링크가 ClickStack 인스턴스를 가리키도록 설정합니다
  * bitdrift의 모바일 세션에서 트레이스 ID를 따라 ClickStack UI(HyperDX)로 이동합니다

  bitdrift는 모바일 기기에서 풍부한 비샘플링 텔레메트리를 수집하며, 요청이 OpenTelemetry로 계측된 서비스에 진입하면 ClickStack은 백엔드 트레이스를 저장하고 쿼리합니다.

  소요 시간: 10\~15분
</Info>

<div id="what-is-bitdrift">
  ## bitdrift란 무엇인가요?
</div>

[bitdrift](https://bitdrift.io/)는 모바일 애플리케이션에 특화된 동적 관측성 플랫폼입니다. 세 가지 핵심 구성 요소로 이루어져 있습니다.

* **[Capture SDK](https://bitdrift.io/feature/performance-centric)**: Rust로 구축되고 플랫폼별 얇은 래퍼를 갖춘 경량 크로스 플랫폼 라이브러리입니다. 텔레메트리를 즉시 외부로 스트리밍하는 대신 기기의 고정 크기 링 버퍼에 기록합니다.
* **컨트롤 플레인**: 모든 클라이언트와 지속적인 양방향 연결을 유지하며, 새 구성을 실시간으로 푸시하고 수집 및 업로드할 항목을 결정합니다.
* **bitdrift 플랫폼**: 워크플로, 세션 타임라인, 차트, 이슈, 알림을 통해 모바일 텔레메트리에서 해답을 얻을 수 있으며, web UI, CLI, AI agents, 공개 API를 통해 액세스할 수 있습니다.

bitdrift는 요청이 있을 때까지 모바일 텔레메트리를 엣지에 보관하므로, 팀은 고정된 사전 샘플링 신호 집합에 의존하는 대신 크래시나 성능 문제로 이어진 전체 비샘플링 세션을 가져올 수 있습니다. bitdrift Capture 플랫폼은 bitdrift가 호스팅하는 SaaS 또는 AWS account에서 자체 Cloud(또는 버킷)를 사용하는 배포 방식으로 제공됩니다.

<Image img="https://mintcdn.com/private-7c7dfe99/3mS6b88R0boYl1UC/images/clickstack/bitdrift/bitdrift-user-journey-dashboard.png?fit=max&auto=format&n=3mS6b88R0boYl1UC&q=85&s=def374455b33795e2574aa193e30ed41" alt="ANR로 이어지는 경로를 보여 주는 bitdrift User Journey 대시보드" size="lg" width="2440" height="1160" data-path="images/clickstack/bitdrift/bitdrift-user-journey-dashboard.png" />

*사용자가 ANR에 이르기까지 거치는 경로를 보여 주는 bitdrift User Journey 대시보드입니다.*

<div id="why-bitdrift-clickstack">
  ## bitdrift + ClickStack을 사용하는 이유
</div>

ClickStack은 ClickHouse 기반의 관측성 솔루션으로, 백엔드 서비스, 웹 프런트엔드, 인프라 전반의 데이터를 수집, 저장, 쿼리할 수 있도록 지원합니다. bitdrift는 많은 까다로운 프로덕션 문제가 시작되는 모바일 기기까지 이 기반을 확장합니다.

* **bitdrift는 기기에서 어떤 일이 일어났는지 보여 줍니다**: 사용자 작업, 앱 상태, 네트워크 요청, 로그, 오류, 크래시, 성능 신호 및 관련 세션 컨텍스트를 확인할 수 있습니다.
* **ClickStack은 요청이 백엔드에 도달한 후 어떤 일이 일어났는지 보여 줍니다**: 분산 트레이스, 서비스 의존성, 로그, 메트릭, 데이터베이스 작업 및 인프라 동작을 확인할 수 있습니다.
* **OpenTelemetry 추적 컨텍스트가 둘을 연결합니다.**

조사는 bitdrift에서 발생한 결제 실패, 느린 화면 로드, 인증 오류 또는 크래시로 시작될 수 있습니다. 엔지니어는 네트워크 요청에서 트레이스 ID를 따라 HyperDX 기반의 ClickStack UI로 이동하여, 흩어진 타임스탬프를 수동으로 재구성하지 않고도 요청이 백엔드 서비스 전반을 거쳐 이동하는 과정을 확인할 수 있습니다.

<Tip>
  **핵심 요점**

  * **bitdrift**는 모바일 앱 전반에서 샘플링되지 않은 모바일 네이티브 텔레메트리를 수집하고, 캡처한 트레이스 ID를 해당 백엔드 트레이스에 연결합니다.
  * **ClickStack**은 생성된 분산 트레이스를 ClickHouse에 저장하고 쿼리하며, HyperDX에 표시합니다.
</Tip>

<div id="prerequisites">
  ## 사전 요구 사항
</div>

* 자가 관리형으로 설치했거나 ClickHouse Cloud에서 사용하는 **ClickStack**에 백엔드 서비스에서 연결할 수 있어야 합니다. [오픈 소스 ClickStack 시작하기](/docs/ko/clickstack/getting-started/oss) 또는 [관리형 ClickStack 시작하기](/docs/ko/clickstack/getting-started/managed)를 참조하십시오.
* **OpenTelemetry**로 계측되고 ClickStack으로 trace를 전송하는 백엔드 서비스. [OpenTelemetry를 사용한 수집](/docs/ko/clickstack/ingesting-data/opentelemetry)을 참조하십시오.
* 모바일 앱에 통합된 **bitdrift Capture SDK**. 설치 방법은 [bitdrift SDK 문서](https://docs.bitdrift.io/)를 참조하십시오.
* **bitdrift 계정** 및 테넌트에서 트레이싱을 활성화할 수 있도록 [Support](https://bitdrift.io/contact-us)에 문의할 수 있어야 합니다(트레이싱은 bitdrift가 테넌트별로 활성화하는 실험적 기능입니다).

<div id="configure-tracing">
  ## 트레이싱 구성
</div>

구성은 전적으로 bitdrift 측에서 다음 3단계로 진행됩니다.

1. [bitdrift Support](https://bitdrift.io/contact-us)에 문의하여 **테넌트의 트레이싱을 활성화하고 ClickStack(HyperDX) 인스턴스로 연결되는 트레이스 딥 링크를 구성**해 달라고 요청하십시오. 딥 링크 구성은 ClickStack UI에서 **View Trace** 링크가 연결될 위치를 지정합니다. 이를 구성하지 않으면 트레이싱은 캡처되지만 **View Trace** 링크는 표시되지 않습니다.
2. 플랫폼에서 **bitdrift의 네트워크 통합을 활성화**하여 아웃바운드 요청에 트레이싱 헤더가 전파되도록 하십시오.
3. **Start Tracing 워크플로 작업을 추가**하여 필요한 세션의 트레이싱을 활성화하십시오.

각 단계의 플랫폼별 세부 정보는 bitdrift 문서의 [How bitdrift and ClickStack work together](https://docs.bitdrift.io/product/integration-partners/clickhouse#how-bitdrift-and-clickstack-work-together)를 참조하십시오.

구성이 완료되면 bitdrift 타임라인 로그 행과 스팬 보기에는 캡처된 트레이스 ID를 ClickStack UI(HyperDX)로 전달하는 **View Trace** 링크가 표시됩니다.

<Image img="https://mintcdn.com/private-7c7dfe99/3mS6b88R0boYl1UC/images/clickstack/bitdrift/bitdrift-view-trace.jpg?fit=max&auto=format&n=3mS6b88R0boYl1UC&q=85&s=1fc46073d05ada0d673c6c7e62033576" alt="ClickStack UI의 분산 트레이스에 연결된 bitdrift 트레이스" size="lg" width="3977" height="1292" data-path="images/clickstack/bitdrift/bitdrift-view-trace.jpg" />

*bitdrift 세션의 View Trace 링크를 따라 ClickStack UI(HyperDX)의 분산 트레이스로 이동합니다.*

<div id="deployment-flexibility">
  ## 배포 유연성
</div>

이 통합은 데이터가 ClickStack에 도달하는 방식을 변경하지 않으므로 ClickStack을 자가 관리형으로 운영하든 ClickHouse Cloud의 관리형 서비스로 운영하든 사용할 수 있습니다. bitdrift는 모바일 텔레메트리를 ClickStack으로 내보내지 않습니다. 대신 기기에서 요청의 OpenTelemetry 추적 컨텍스트를 캡처하고, 자체 OpenTelemetry 계측 서비스가 이미 ClickStack으로 전송하는 백엔드 트레이스에 연결합니다. bitdrift에는 **View Trace** 링크를 생성하기 위한 ClickStack UI(HyperDX)의 주소만 필요하므로 ClickStack 배포 또는 수집 파이프라인을 변경할 필요가 없습니다.

<div id="next-steps">
  ## 다음 단계
</div>

* bitdrift에서 발생한 실제 모바일 크래시 또는 느린 요청을 ClickStack의 백엔드 트레이스까지 **추적해 보십시오**
* 모바일 앱이 의존하는 백엔드 서비스를 위한 **대시보드를** ClickStack(HyperDX)에서 **구축하십시오**
* Capture 사용 경험을 확인하려면 [bitdrift sandbox](https://bitdrift.io/sandbox)를 **살펴보십시오**
* 모바일 앱에 bitdrift를 추가하려면 [무료 체험](https://bitdrift.io/signup)을 **시작하십시오**

<div id="read-more">
  ## 자세히 알아보기
</div>

* [bitdrift 문서: ClickHouse 통합](https://docs.bitdrift.io/product/integration-partners/clickhouse)
* [오픈 소스 ClickStack 시작하기](/docs/ko/clickstack/getting-started/oss)
* [OpenTelemetry를 사용한 수집](/docs/ko/clickstack/ingesting-data/opentelemetry)
