피드로 돌아가기
I Got Tired of LeetCode Trackers Selling My Data, So I Built My Own.
Dev.toDev.to
Frontend

Local-First 설계와 SQLite 기반의 데이터 주권 확보형 DSA 트래커 구축

I Got Tired of LeetCode Trackers Selling My Data, So I Built My Own.

Ritanjit Das2026년 5월 28일7intermediate

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와 같은 최소한의 외부 접점만 유지하는 프라이버시 모델 설계

원문 읽기