정나래 3475a7b988 [변경] AptabaseClient.cs
- 종료 직전에 보내는 Event 누락 방지하기 위한 코드 수정
  : 큐에 이벤트를 추가하면 +1, 큐에서 읽어와서 Event를 Send하면 -1하는 필드 추가
  : 필드가 0이되기를 기다리는 함수 추가(대기 한계 시간 기본값 1500ms)

[변경] AptabaseClientBase.cs
- EventData에 ipAddredd 할당하는 코드 제거
 : 매번 API 호출하면서 속도 지연의 원인이 됨
- aptabase-debug.log 파일 생성하는 코드 제거
 : 파일 관리가 안되고 있으므로 제거
2025-09-12 17:47:24 +09:00
2025-07-07 16:06:18 +09:00
2025-09-12 17:47:24 +09:00
2025-07-07 16:06:18 +09:00
2025-07-07 16:06:18 +09:00
2025-07-07 16:06:18 +09:00
2025-07-07 16:06:18 +09:00
2025-07-07 16:06:18 +09:00
2025-07-07 16:06:18 +09:00

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 속성을 지정해야 합니다.

// 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에서 버튼 클릭 이벤트를 추적하는 방법은 다음과 같습니다.

// 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 메서드는 사용자 정의 속성을 포함할 수도 있습니다.

// 속성 없이 이벤트 전송
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 이벤트를 기록합니다.
Description
No description provided
Readme MIT 72 KiB
Languages
C# 100%