diff --git a/docs/superpowers/plans/2026-04-27-week1-engine-migration.md b/docs/superpowers/plans/2026-04-27-week1-engine-migration.md index e87fae4..3c0e726 100644 --- a/docs/superpowers/plans/2026-04-27-week1-engine-migration.md +++ b/docs/superpowers/plans/2026-04-27-week1-engine-migration.md @@ -19,9 +19,9 @@ | 작업 | 파일 | |------|------| | **신규** | `index.html`, `vite.config.ts`, `tsconfig.node.json`, `src/main.tsx`, `src/App.tsx`, `src/config/env.ts`, `src/styles/adaptive.ts`, `src/platform/analytics/types.ts`, `src/platform/analytics/consoleAdapter.ts`, `src/platform/analytics/index.ts` | -| **수정** | `package.json`, `tsconfig.json`, `.gitignore`, `src/styles/gameColors.ts`, `src/components/AchievementToast.tsx`, `src/components/OfflineRewardModal.tsx`, `src/components/PrestigeModal.tsx`, `src/components/screens/AchievementsScreen.tsx`, `src/components/screens/ElementsScreen.tsx`, `src/components/screens/SettingsScreen.tsx`, `src/components/screens/ShopScreen.tsx` | +| **수정** | `package.json`, `tsconfig.json`, `.gitignore`, `src/styles/gameColors.ts`, `src/components/AchievementToast.tsx`, `src/components/OfflineRewardModal.tsx`, `src/components/PrestigeModal.tsx`, `src/components/screens/AchievementsScreen.tsx`, `src/components/screens/ElementsScreen.tsx`, `src/components/screens/SettingsScreen.tsx`, `src/components/screens/ShopScreen.tsx`, `src/components/screens/EvolutionScreen.tsx`, `src/components/screens/FusionScreen.tsx` | | **삭제** | `babel.config.js`, `granite.config.ts`, `require.context.ts`, `global.d.ts`, `src/_app.tsx`, `pages/index.tsx`, `pages/` (디렉토리), `src/analytics.ts`, `.swc/`, `dist/` | -| **변경 없음** | `src/store/useGameStore.ts`, `src/data/*.json`, `src/hooks/*.ts`, `src/components/BottomTabBar.tsx`, `src/components/CharacterSprite.tsx`, `src/components/FloatingOverlay.tsx`, `src/components/screens/EvolutionScreen.tsx`, `src/components/screens/FusionScreen.tsx`, `src/components/tutorial/*.tsx` | +| **변경 없음** | `src/store/useGameStore.ts`, `src/data/*.json`, `src/hooks/*.ts`, `src/components/BottomTabBar.tsx`, `src/components/CharacterSprite.tsx`, `src/components/FloatingOverlay.tsx`, `src/components/tutorial/*.tsx` | --- @@ -495,6 +495,7 @@ git commit -m "feat: add domain-independent env config entry point" **Files:** - Create: `src/platform/analytics/types.ts`, `src/platform/analytics/consoleAdapter.ts`, `src/platform/analytics/index.ts` - Delete: `src/analytics.ts` +- Modify: `src/components/OfflineRewardModal.tsx`, `src/components/screens/ShopScreen.tsx`, `src/components/screens/EvolutionScreen.tsx`, `src/components/screens/FusionScreen.tsx` (line 5/6/11/8 each — analytics import path) - [ ] **Step 1: `src/platform/analytics/types.ts` 생성** @@ -551,7 +552,25 @@ export type { AnalyticsAdapter, AnalyticsParams }; rm src/analytics.ts ``` -- [ ] **Step 5: 커밋** +- [ ] **Step 5: 4개 consumer 파일의 analytics import 경로 갱신** + +```bash +# 다음 4개 파일에서 import 경로 변경: +# src/components/OfflineRewardModal.tsx 5행 +# src/components/screens/ShopScreen.tsx 6행 +# src/components/screens/EvolutionScreen.tsx 11행 +# src/components/screens/FusionScreen.tsx 8행 +# +# 변경 내용 (각 파일): +# '../analytics' → '../platform/analytics' +# '../../analytics' → '../../platform/analytics' +``` + +검증: +- Grep `from '../analytics'` 또는 `from '../../analytics'` 결과 0개여야 함 +- Grep `from '../platform/analytics'` 또는 `from '../../platform/analytics'` 결과 4개여야 함 + +- [ ] **Step 6: 커밋** ```bash git add src/platform src/analytics.ts diff --git a/src/components/OfflineRewardModal.tsx b/src/components/OfflineRewardModal.tsx index c2fa834..0dcb898 100644 --- a/src/components/OfflineRewardModal.tsx +++ b/src/components/OfflineRewardModal.tsx @@ -2,7 +2,7 @@ import { css, keyframes } from '@emotion/react'; import { adaptive } from '../styles/adaptive'; import elementsData from '../data/elements.json'; import { useGameStore } from '../store/useGameStore'; -import { trackGameEvent } from '../analytics'; +import { trackGameEvent } from '../platform/analytics'; function formatDuration(seconds: number): string { if (seconds >= 3600) { diff --git a/src/components/screens/EvolutionScreen.tsx b/src/components/screens/EvolutionScreen.tsx index f3e37de..e17b68b 100644 --- a/src/components/screens/EvolutionScreen.tsx +++ b/src/components/screens/EvolutionScreen.tsx @@ -8,7 +8,7 @@ import { useGameStore, } from '../../store/useGameStore'; import { FloatingOverlay } from '../FloatingOverlay'; -import { trackGameEvent } from '../../analytics'; +import { trackGameEvent } from '../../platform/analytics'; import { useFloatingItems } from '../../hooks/useFloatingItems'; const containerStyle = css` diff --git a/src/components/screens/FusionScreen.tsx b/src/components/screens/FusionScreen.tsx index fb3edf9..6bc255e 100644 --- a/src/components/screens/FusionScreen.tsx +++ b/src/components/screens/FusionScreen.tsx @@ -5,7 +5,7 @@ import recipesData from '../../data/recipes.json'; import { useGameStore } from '../../store/useGameStore'; import { FloatingOverlay } from '../FloatingOverlay'; import { useFloatingItems } from '../../hooks/useFloatingItems'; -import { trackGameEvent } from '../../analytics'; +import { trackGameEvent } from '../../platform/analytics'; // TDS 색상 팔레트 const tds = { diff --git a/src/components/screens/ShopScreen.tsx b/src/components/screens/ShopScreen.tsx index baf49c0..e30589d 100644 --- a/src/components/screens/ShopScreen.tsx +++ b/src/components/screens/ShopScreen.tsx @@ -3,7 +3,7 @@ import { useState, useEffect } from 'react'; import { adaptive } from '../../styles/adaptive'; import { rarityGradient } from '../../styles/gameColors'; import { useGameStore, isElementUnlocked } from '../../store/useGameStore'; -import { trackGameEvent } from '../../analytics'; +import { trackGameEvent } from '../../platform/analytics'; import elementsData from '../../data/elements.json'; const BOOST_DURATION_SEC = 30;