Product

서버 없는 앱, '로컬 퍼스트'의 장점과 정직한 한계

로컬에 저장되는 티켓 일러스트

저희가 만드는 개인용 도구 앱들은 대부분 서버가 없습니다. 회원가입도 없고, 사용자가 입력한 데이터는 전부 사용자 기기 안(브라우저의 IndexedDB나 앱의 로컬 저장소)에만 저장됩니다. 이런 구조를 로컬 퍼스트(local-first)라고 부릅니다. 쿠폰북을 이 구조로 만들며 정리한, 로컬 퍼스트의 실질적인 장점과 정직한 한계를 공유합니다.

장점 1: 개인정보 문제가 구조적으로 사라진다

서버가 없으면 유출될 서버도 없습니다. 사용자가 어떤 가게에 다니는지, 얼마짜리 회수권을 쓰는지는 꽤 사적인 정보인데, 이 정보가 개발자에게조차 전송되지 않습니다. 개인정보처리방침이 짧고 명확해지고, 사용자에게 "우리는 당신의 데이터를 볼 수 없습니다"라고 사실대로 말할 수 있습니다. 신뢰를 마케팅이 아니라 구조로 증명하는 방식입니다.

장점 2: 오프라인에서 그냥 동작한다

데이터가 기기에 있으니 네트워크가 없어도 앱이 완전하게 동작합니다. 지하 주차장에서도, 비행기에서도 도장 개수는 확인됩니다. 서버 왕복이 없으니 반응 속도도 일관되게 빠릅니다.

장점 3: 운영 비용이 0에 수렴한다

1인 스튜디오에게 중요한 부분입니다. 서버 비용, DB 백업, 보안 패치, 장애 대응이 없습니다. 무료 앱을 오래 유지하려면 유지비가 0이어야 하고, 로컬 퍼스트는 그것을 가능하게 합니다. 사용자가 10만 명이 되어도 서버비는 그대로 0원입니다.

한계 1: 기기를 바꾸면 데이터가 따라가지 않는다

가장 큰 트레이드오프입니다. 데이터가 기기에만 있으므로, 폰을 바꾸거나 브라우저 데이터를 삭제하면 기록이 사라질 수 있습니다. 완화 장치는 두 가지입니다. 첫째, 수동 백업/복원 — 쿠폰북은 JSON 파일로 내보내고 새 기기에서 불러올 수 있게 했습니다. 둘째, 영속 저장소 요청 — 브라우저에 "이 데이터는 지우지 말라"고 요청하는 Persistent Storage API를 사용합니다. 그래도 클라우드 동기화만큼 매끄럽지는 않습니다. 이 부분은 숨기지 말고 앱 안에서 먼저 안내해야 한다고 생각합니다. 쿠폰북이 첫 쿠폰 등록 직후에 백업을 권하는 이유입니다.

한계 2: 여러 기기 동시 사용이 안 된다

폰과 태블릿에서 같은 데이터를 보려면 동기화 서버가 필요합니다. 로컬 퍼스트로 시작한 앱이 성장하면 결국 "선택적 동기화"를 요구받는데, 이때는 종단간 암호화 동기화 같은 절충안을 검토하게 됩니다. 처음부터 모든 것을 만들기보다, 사용자가 실제로 요구할 때 추가하는 편이 낫습니다.

어떤 앱에 로컬 퍼스트가 맞는가

  • 맞는 경우 — 개인 기록·관리 도구(쿠폰, 가계부, 습관, 메모), 데이터가 사적이고 협업이 필요 없는 앱.
  • 맞지 않는 경우 — 여러 사람이 같은 데이터를 보는 앱(팀 협업, 커뮤니티), 기기 간 실시간 동기화가 핵심 가치인 앱.

로컬 퍼스트는 "서버를 만들 돈이 없어서"가 아니라, 개인 도구라는 제품 성격에 가장 정직한 구조라서 선택하는 것입니다. 대신 데이터 소실 리스크를 사용자에게 투명하게 알리고 백업 수단을 제공하는 것까지가 설계의 일부입니다.

← 블로그 목록으로