설계로서의 계정 없음
OmniFlux 앱에 가입할 일은 절대 없다. 왜 \"계정 없음\"이 결손이 아닌 기능인지, 그리고 그것이 다운스트림 모든 것을 어떻게 바꾸는지.
약속
OmniFlux 제품에서 "가입"이나 "로그인" 화면을 볼 일은 없다. 만들 계정 없음, 확인할 이메일 없음, 관리할 복구 플로 없음, "내 데이터 삭제" 버튼도 없음 — 왜냐하면 우리가 가진 당신의 데이터가 없으니 지울 게 없어서.
이것은 의도된 엔지니어링·제품 선택이지 누락이 아니다. 이유는 아래와 같다.
왜 대부분의 앱은 계정을 원하나
대부분의 앱에서 계정은 클라우드 측 기능을 작동하게 하는 방식이다: 데이터는 그들의 DB에, 설정은 그들의 백엔드에, 기기 간 동기화는 그들의 서버로 업로드를 의미한다. 계정은 서버 측 저장소의 열쇠.
우리 제품에는 서버 측 저장소가 없다. 모델은 당신의 기기에서 돈다. 입력과 출력은 당신의 기기에 산다. "로그인할" 대상이 없다.
우리가 포기하는 것
- 기기 간 동기화가 어려워진다. 로컬 네트워크 위 E2E 암호화 피어 동기화와, (옵트인) 당신이 이미 관리하는 iCloud / Drive / Dropbox 폴더로 해결한다. 무엇도 우리 서버를 거치지 않는다.
- 기기 간 사용 분석은 사라진다. 몇 명이 기능을 쓰는지 우리는 모른다. 그 시그널은 느리고 정직한 방식 — 리뷰 읽기, 사용자와 대화, 무엇을 원하는지 관찰 — 으로 되돌린다.
- 로그인 벽 뒤 기능은 사라진다. 제품 표면 전체가 "5분 전 설치, 아무것도 연결 안 한 사용자"에게 동작한다.
우리가 얻는 것
- 신뢰의 기본값. 데이터를 수집하지 않으면 흘릴 수 없고 팔 수 없고 영장으로 내놓을 수 없으며 도난당할 수 없다.
- 계정 복구 지원 부담 0. 비밀번호 리셋 없음, "이메일 잃어버렸어요" 티켓 없음, SIM 스왑 사기 없음. 우리 지원 부담은 SaaS보다 싱글 플레이어 게임에 가깝다.
- 정직한 가격. 앱을 한 번 판다. 유료 사용자로 무료 사용자를 보조하지 않으며, "알림 안 늘리면 무료 사용자 이탈"이라는 메트릭에 끌려 다크 패턴으로 가지 않는다.
- 장수 제품. 서버 없는 앱은 회사가 우선순위를 바꾼다고 죽지 않는다. 로컬 모델과 로컬 DB는 기기가 지속되는 한 계속 돈다.
동기화 작동 방식
옵트인하면:
- 로컬 네트워크에서 6자리 일회용 코드로 두 기기 페어링 (OAuth 아닌 AirDrop식 핸드셰이크).
- 두 기기 모두 로컬에서 키쌍 생성, 핸드셰이크에서 공개키 교환.
- 동기 메시지는 수신 기기의 공개키로 암호화. 우리 인프라(릴레이로 쓰인다면)는 암호문만 본다.
- 원본 기기의 페어 리스트에서 다른 기기를 언제든 폐기 가능.
원한다면 임의 클라우드 드라이브 폴더(iCloud, OneDrive, Drive, Dropbox, 자체 호스팅 WebDAV)를 꽂으면 거기에 암호화된 동기 패킷을 쓴다. 그 서비스들의 자격증명은 절대 요구하지 않는다; 당신이 로컬 폴더를 가리켜 주면 업로드는 플랫폼이 한다.
"그럼 뭘 만들지 어떻게 알아요?"
사용자와 대화해서. 리뷰를 읽어서. 가끔 명시적 옵트인 설문을 제공해서. 1996년 shareware 작가에게 보냈을 법한, 천천히 쌓이는 피드백으로 — 그리고 사실, 그것은 매우 좋은 소프트웨어를 만들기에 충분했다.