oneshim-storage
로컬 데이터 저장을 담당하는 크레이트. SQLite 기반 오프라인 저장소, 스키마 마이그레이션, 보존 정책을 관리합니다.
주요 기능
오프라인 우선 저장소
SQLite 기반의 로컬 저장소로, 네트워크 연결 없이도 모든 데이터를 안전하게 보관합니다.
| 기능 | 설명 |
|---|---|
| 이벤트 저장 | 컨텍스트 이벤트 로컬 보관 |
| 프레임 저장 | 스크린샷 프레임 로컬 보관 |
| 미전송 큐 | 서버 미전송 데이터 관리 |
| 전송 완료 마킹 | 동기화 상태 추적 |
| 데이터 정리 | 보존 정책에 따른 자동 정리 |
Edge Intelligence 저장
로컬 집중도 분석을 위한 추가 데이터를 관리합니다.
| 데이터 | 설명 |
|---|---|
| 작업 세션 | 앱별 작업 시간, 깊은 작업 시간 추적 |
| 인터럽션 | 작업 중단 기록, 컨텍스트 전환 추적 |
| 집중 메트릭 | 일별 집중 점수, 활동 시간 통계 |
| 로컬 제안 | Edge에서 생성된 AI 제안 보관 |
스키마 마이그레이션
자동 스키마 버전 관리로 업데이트 시 데이터 호환성을 보장합니다.
보존 정책
- 기본 30일 보존
- 최대 500MB 저장 용량
- 서버 전송 완료된 데이터만 정리 대상
- 미전송 데이터는 보존 정책에서 제외
성능 최적화
- WAL(Write-Ahead Logging) 모드로 동시 읽기/쓰기 지원
- 커넥션 풀 기반 효율적인 DB 접근
- 복합 인덱스로 조회 성능 최적화
- 배치 저장 API로 대량 데이터 효율적 처리
데이터 흐름
관련 문서:
- 클라이언트 개요
- oneshim-core - StorageService 포트
- oneshim-network - 배치 업로드