피드로 돌아가기
Dev.toFrontend
원문 읽기
Local-First 설계와 SQLite 기반의 데이터 주권 확보형 DSA 트래커 구축
I Got Tired of LeetCode Trackers Selling My Data, So I Built My Own.
AI 요약
Context
기존 LeetCode 트래킹 도구들의 중앙 집중식 데이터 저장 방식으로 인한 개인정보 유출 위험과 서비스 중단 시 데이터 손실 가능성 확인. 외부 서버 의존성을 완전히 제거하여 사용자 기기 내에서만 데이터가 처리되는 Private 인프라 필요성 대두.
Technical Solution
- Astro 5의 Island Architecture를 통한 인터랙티브 컴포넌트 최소 최적화 및 localhost 기반 SSR 환경 구축
- Chrome Extension의 Content Script가 DOM에서 'Accepted' 상태를 감지하여 Background Worker로 전송하는 이벤트 기반 동기화 흐름 설계
- 외부 네트워크 호출을 GitHub API를 통한 솔루션 백업(1회)으로 제한하여 데이터 프라이버시 모델 극대화
- better-sqlite3 라이브러리를 활용한 단일 파일 기반 로컬 DB 구축으로 별도의 ORM이나 Migration 서버 없는 제로 설정 데이터 관리 구현
- pnpm Workspace와 Turborepo를 통한 Monorepo 구조 설계로 대시보드와 익스텐션 간의 TypeScript 타입 정의 공유 및 빌드 속도 향상
- View Transition API를 적용한 상태 전환 애니메이션으로 사용자 경험(UX) 고도화
실천 포인트
- 개인정보 보호가 핵심인 서비스 설계 시 Local-First 아키텍처와 SQLite 조합 검토 - Monorepo 환경에서 프론트엔드와 브라우저 익스텐션 간의 Shared Types를 통한 런타임 에러 방지 - 불필요한 클라우드 의존성을 제거하고 GitHub API와 같은 최소한의 외부 접점만 유지하는 프라이버시 모델 설계