Phase 5 구현: SQLite DB + History/Dictionary 서비스 + UI

- DB: better-sqlite3 + drizzle-orm (history/dictionary/stats, WAL 모드)
- HistoryService: CRUD + 검색 + 통계 + 30일 보존 정책, 세션 완료 시 자동 저장
- DictionaryService: CRUD + 검색 + 사용 횟수 추적 + STT 프롬프트 힌트
- HistoryPage: 목록 + 검색 + 삭제 + 복사 + 페이지네이션
- DictionaryPage: 목록 + 검색 + 추가 다이얼로그 + 삭제
- DashboardPage: 실데이터 통계 (총/오늘 세션, 시간, 단어수, 연속일수)
- IPC: history/dictionary/stats 핸들러 + preload API
- Bootstrap: DB 초기화 (critical) + 이력 자동 저장 연동
This commit is contained in:
Yun Chan 2026-04-05 02:32:53 +09:00
parent 4a5cf6c819
commit 291e2a29d0
17 changed files with 3111 additions and 35 deletions

View file

@ -17,6 +17,7 @@
"license": "MIT",
"devDependencies": {
"@electron-toolkit/tsconfig": "^1.0.1",
"@types/better-sqlite3": "^7.6.13",
"@types/node": "^22.13.0",
"@types/react": "^19.0.0",
"@types/react-dom": "^19.0.0",
@ -39,9 +40,13 @@
"@emotion/styled": "^11.14.0",
"@mui/icons-material": "^7.0.0",
"@mui/material": "^7.0.0",
"@nut-tree-fork/nut-js": "^4.2.6",
"@rollup/rollup-win32-x64-msvc": "^4.60.1",
"better-sqlite3": "^12.8.0",
"drizzle-orm": "^0.45.2",
"electron-log": "^5.2.0",
"electron-store": "^10.0.0",
"nanoid": "^5.1.7",
"node-record-lpcm16": "^1.0.1",
"react": "^19.0.0",
"react-dom": "^19.0.0",