From 3079498e1602c5d8396940b8f15c3854d87d0232 Mon Sep 17 00:00:00 2001 From: gahusb Date: Mon, 27 Apr 2026 08:29:14 +0900 Subject: [PATCH] refactor: introduce analytics adapter behind src/platform/ --- src/analytics.ts | 21 --------------------- src/platform/analytics/consoleAdapter.ts | 12 ++++++++++++ src/platform/analytics/index.ts | 16 ++++++++++++++++ src/platform/analytics/types.ts | 6 ++++++ 4 files changed, 34 insertions(+), 21 deletions(-) delete mode 100644 src/analytics.ts create mode 100644 src/platform/analytics/consoleAdapter.ts create mode 100644 src/platform/analytics/index.ts create mode 100644 src/platform/analytics/types.ts diff --git a/src/analytics.ts b/src/analytics.ts deleted file mode 100644 index 576be26..0000000 --- a/src/analytics.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { Analytics, type AnalyticsConfig } from '@apps-in-toss/analytics'; - -type LogParams = Record; - -let _logger: AnalyticsConfig['logger'] | null = null; - -export function initAnalytics(debug = false) { - const logger: AnalyticsConfig['logger'] = ({ log_name, log_type, params }) => { - if (debug) { - console.log(`[Analytics] ${log_type}:${log_name}`, params); - } - // 프로덕션에서는 여기서 서버로 이벤트 전송 - }; - - Analytics.init({ logger, debug }); - _logger = logger; -} - -export function trackGameEvent(logName: string, params: LogParams = {}) { - _logger?.({ log_name: logName, log_type: 'game_event', params }); -} diff --git a/src/platform/analytics/consoleAdapter.ts b/src/platform/analytics/consoleAdapter.ts new file mode 100644 index 0000000..c3060d3 --- /dev/null +++ b/src/platform/analytics/consoleAdapter.ts @@ -0,0 +1,12 @@ +import type { AnalyticsAdapter, AnalyticsParams } from './types'; + +export function createConsoleAdapter(debug: boolean): AnalyticsAdapter { + return { + init() { + if (debug) console.log('[Analytics] console adapter initialized'); + }, + track(eventName: string, params: AnalyticsParams = {}) { + if (debug) console.log('[Analytics]', eventName, params); + }, + }; +} diff --git a/src/platform/analytics/index.ts b/src/platform/analytics/index.ts new file mode 100644 index 0000000..1391676 --- /dev/null +++ b/src/platform/analytics/index.ts @@ -0,0 +1,16 @@ +import { createConsoleAdapter } from './consoleAdapter'; +import type { AnalyticsAdapter, AnalyticsParams } from './types'; +import { env } from '../../config/env'; + +let _adapter: AnalyticsAdapter | null = null; + +export function initAnalytics(debug = env.isDev): void { + _adapter = createConsoleAdapter(debug); + _adapter.init(); +} + +export function trackGameEvent(eventName: string, params: AnalyticsParams = {}): void { + _adapter?.track(eventName, params); +} + +export type { AnalyticsAdapter, AnalyticsParams }; diff --git a/src/platform/analytics/types.ts b/src/platform/analytics/types.ts new file mode 100644 index 0000000..d8acfc8 --- /dev/null +++ b/src/platform/analytics/types.ts @@ -0,0 +1,6 @@ +export type AnalyticsParams = Record; + +export interface AnalyticsAdapter { + init(): void; + track(eventName: string, params?: AnalyticsParams): void; +}