# Aptabase SDK for WPF WPF 애플리케이션을 위한 Aptabase SDK입니다. Aptabase는 오픈 소스, 개인 정보 보호 우선, 그리고 간단한 사용법을 지향하는 앱 분석 도구입니다. ## 사용법 ### 1. 초기화 먼저 Aptabase에서 `App Key`를 발급받아야 합니다. 이 키는 Aptabase 대시보드의 왼쪽 '설정' 메뉴에서 찾을 수 있습니다. WPF 애플리케이션이 시작될 때, `App.xaml.cs` 파일의 `OnStartup` 메서드에서 `AptabaseTracker.Init`을 호출하여 SDK를 초기화합니다. ### Self-Hosting 직접 호스팅하는 서버를 사용하려면, `AptabaseOptions`를 사용하여 `Host` 속성을 지정해야 합니다. ```csharp // App.xaml.cs using System.Windows; using Aptabase.WPF; public partial class App : Application { protected override void OnStartup(StartupEventArgs e) { base.OnStartup(e); AptabaseTracker.Init("A-SH-0265005374", new AptabaseOptions // 👈 사내 Self-Host 중인 서버 Test App 입니다. 실트랙킹을 위해서는 별도 발급해야 합니다. { Host = "https://aptabase.hmac.kr" // 👈 사내 Self-Host 중인 서버 주소를 입력합니다. }); } } ``` ### 2. 이벤트 추적 초기화가 완료되면, 애플리케이션의 어느 곳에서든 `AptabaseTracker.TrackEvent` 정적 메서드를 사용하여 이벤트를 추적할 수 있습니다. 예를 들어, `MainWindow.xaml.cs`에서 버튼 클릭 이벤트를 추적하는 방법은 다음과 같습니다. ```csharp // MainWindow.xaml.cs using System.Windows; using Aptabase.WPF; // 👈 Aptabase 네임스페이스를 추가합니다. public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } private void OnCounterClicked(object sender, RoutedEventArgs e) { // "button_clicked" 라는 이름으로 이벤트를 전송합니다. AptabaseTracker.TrackEvent("button_clicked"); } } ``` `TrackEvent` 메서드는 사용자 정의 속성을 포함할 수도 있습니다. ```csharp // 속성 없이 이벤트 전송 AptabaseTracker.TrackEvent("app_started"); // 사용자 정의 속성과 함께 이벤트 전송 AptabaseTracker.TrackEvent("screen_view", new() { { "name", "Settings" } }); ``` ### 주요 참고사항 1. **자동 정보 수집:** SDK는 OS, 앱 버전 등 유용한 시스템 정보를 이벤트와 함께 자동으로 수집합니다. 2. **수동 추적:** SDK는 자동으로 이벤트를 추적하지 않습니다. `TrackEvent`를 직접 호출하여 원하는 이벤트만 기록할 수 있습니다. 3. **비동기 처리:** `TrackEvent`는 백그라운드에서 실행되므로 UI 스레드를 차단하지 않습니다. 4. **데이터 타입:** 사용자 정의 속성에는 문자열과 숫자 타입의 값만 사용할 수 있습니다. 5. **자동 예외 추적:** SDK는 처리되지 않은 예외(`Unhandled Exception`)를 자동으로 감지하여 `app_exception` 이벤트를 기록합니다.