Skip to content

Latest commit

 

History

History
32 lines (32 loc) · 1.39 KB

애널리틱스 이벤트나 라이브러리의 추가 및 제거에 대한 리소스를 최소화하자.md

File metadata and controls

32 lines (32 loc) · 1.39 KB

비효율적인 애널리틱스 처리 구조

  • 새로운 이벤트의 추가 및 제거 리소스가 큼
  • 애널리틱스 라이브러리의 추가 및 제거 리소스가 큼
  • 이벤트를 기록하고 있는 형식 파악이 어려움

효율적인 애널리틱스 처리 구조

  • 애널리틱스 이벤트는 앱 구조와 독립적으로 분리
  • 이벤트와 프로퍼티에 대한 형식을 엄격하게 제한
  • 필요한 애널리틱스 리소스에만 접근 가능
  • 라이브러리가 달라도 애널리틱스 처리 로직은 동일하게 동작

애널리틱스 이벤트 추상 클래스 구현 예시

abstract class AnalyticsEvent(
    val eventName: String,
    val params: Map<String, Any?> = emptyMap(),
    val providers: List<AnalyticsProvider> = listOf(
        AnalyticsProvider.ANALYTICS_FIREBASE,
        AnalyticsProvider.ANALYTICS_AMPLITUDE,
    )
)

애널리틱스 프로퍼티 추상 클래스 구현 예시

abstract class AnalyticsProperty(
    val propertyName: String,
    val parameter: Any,
    val providers: List<AnalyticsProvider> = listOf(
        AnalyticsProvider.ANALYTICS_FIREBASE,
        AnalyticsProvider.ANALYTICS_AMPLITUDE,
    )
)