피드로 돌아가기
Dev.toDatabase
원문 읽기
OPFS와 CRDT 기반 Local-first 아키텍처를 통한 데이터 소유권 완전 분리
One-trick ponies are easy to replace
AI 요약
Context
중앙 집중형 서버 인프라 의존도로 인한 서비스 종료 시 데이터 소실 및 사용자 데이터 통제권 상실 문제 발생. 법적 소유권과 실제 물리적 제어권 사이의 괴리로 인한 아키텍처적 신뢰 결여 상황 분석.
Technical Solution
- OPFS(Origin Private File System) 도입을 통한 브라우저 내 SQLite 동기식 I/O 및 영속성 파일 시스템 확보
- cr-sqlite 기반의 CRDT(Conflict-free Replicated Data Types) 적용으로 중앙 서버 없는 로컬 DB 간 데이터 병합 및 충돌 해결
- libp2p 활용을 통한 Peer-to-Peer 네트워크 구성으로 서버의 역할을 데이터 저장소에서 Peer Discovery 도우미로 전환
- Schema-encoded Sync 방식을 통해 DB 스키마 내에 REALTIME_TEXT, LWW_INTEGER 등 동기화 세맨틱을 직접 정의하는 설정 구조 설계
- Mnemonic 기반 Ed25519 Keypair 생성 체계를 통해 서버 세션 토큰 없이 사용자 단말에서 결정론적 Identity 관리 및 데이터 암호화 수행
실천 포인트
1. 브라우저 기반 앱 설계 시 OPFS를 통한 로컬 영속성 저장소 활용 가능성 검토
2. 다중 단말 데이터 동기화 필요 시 중앙 집중형 Lock 대신 CRDT 도입을 통한 Eventual Consistency 구현 고려
3. 서비스 가용성 확보를 위해 서버를 권위적 주체(Authority)가 아닌 고가용성 Peer로 정의하는 설계 적용
4. 사용자 Identity 관리 시 서버 의존적 인증 대신 공개키 기반의 결정론적 키 생성 방식의 UX 비용 분석