'서버 없이 AI 기능을 제품에 넣을 수 있을까'—이 질문이 불과 2년 전만 해도 학술적 호기심에 가까웠다면, 지금은 실제로 배포된 제품 두 개가 그 답을 증명하고 있다. 하나는 OpenAI의 Whisper 모델을 브라우저 탭 안에서 실행해 자막을 생성하는 도구고, 다른 하나는 백엔드도 데이터베이스도 없이 localStorage만으로 개인 트래킹 앱 스위트를 만든 사례다. 두 프로젝트의 스택은 다르지만, 핵심 철학은 같다. 연산이 로컬에서 가능하다면, 서버로 보낼 이유가 없다.
Whisper × WebAssembly: 브라우저가 AI 추론 엔진이 되는 순간
dev.to에 올라온 한 사례는 12분짜리 제품 데모 영상에 자막을 붙여야 했던 상황에서 출발한다. Rev는 분당 $1.50에 24시간 납기, Descript는 구독 필요, YouTube 자동 자막은 업로드-대기-다운로드의 3단계 컨텍스트 전환을 강요했다. 그래서 직접 만들었다. OpenAI가 2022년 오픈소스로 공개한 Whisper는 이미 ONNX와 WebAssembly로 포팅돼 있었고, 브라우저 안에서 실행할 기반이 충분히 갖춰진 상태였다.
파이프라인의 구조는 설득력 있다. 비디오를 드롭하면 FFmpeg.wasm이 서버 왕복 없이 브라우저 메모리 안에서 오디오를 추출한다. OfflineAudioContext가 44.1kHz 스테레오를 Whisper가 요구하는 16kHz 모노로 변환하고, 양자화된 ONNX 모델이 Web Worker 안에서 30초 청크 단위로 추론을 돌린다. 메인 스레드는 건드리지 않는다—추론이 돌아가는 동안 페이지 스크롤이 멈추지 않는다. 모델 가중치(40~80MB)는 첫 실행 시 다운로드 후 브라우저에 캐시된다. 두 번째 실행부터는 거의 즉시 시작된다.
정확도 이야기를 솔직하게 짚고 넘어가야 한다. 단일 화자, 명확한 영어 발음 기준으로 93~95%의 사용 가능한 결과가 나온다. 강한 억양과 배경 소음이 겹치거나, 발화자가 여럿이거나, 도메인 특수 어휘가 많은 경우엔 정확도가 떨어진다. 방송급 품질이 필요한 작업에는 여전히 사람 검수가 필요하다. 하지만 SNS 콘텐츠, 내부 교육 영상, 빠른 초안 작업—이 범위에서는 '충분히 좋다'는 기준을 통과한다.
그리고 여기서 프라이버시 논의가 단순한 마케팅 문구 이상의 의미를 갖는다. 법무법인의 증언 녹취, 출시 전 제품 데모, 의료 구술 기록, 내부고발자 인터뷰—이 시나리오들은 모두 클라우드 전송 자체가 컴플라이언스 리스크거나 정보 유출의 통로가 될 수 있다. HIPAA 관점에서 PHI가 디바이스를 벗어나는 순간 BAA(Business Associate Agreement) 문제가 생긴다. 로컬 실행은 이 법적 복잡성 전체를 우회한다. '로컬에서 연산 가능하면 로컬에서 해야 한다'는 원칙이 단순히 기술적 취향이 아닌 이유다.
NoSheetKit: 백엔드 없는 앱 스위트의 설계 판단들
두 번째 사례는 AI와 직접 연관이 없지만, 같은 철학을 프론트엔드 제품 설계로 확장한다. dev.to의 또 다른 글에서 개발자는 친구에게 빌려준 돈, 도메인 갱신일, 잊어버릴 생일 등을 관리하던 스프레드시트를 각각 하나의 역할만 하는 미니앱으로 교체했다. 스택은 Next.js App Router + Tailwind CSS + shadcn/ui + localStorage. 백엔드 없음, 데이터베이스 없음, 회원가입 없음.
흥미로운 것은 기술 선택보다 설계 판단이다. IndexedDB 대신 localStorage를 선택한 이유는 단순함과 디버깅 용이성이었다—개인 데이터 규모에서 IndexedDB의 이점이 복잡성 비용을 정당화하지 못했다. 전역 상태 관리 라이브러리를 쓰지 않고 각 미니앱을 완전히 독립적으로 유지했다—Zustand도 없고 Context 헬도 없다. useLocalStorage 훅 하나를 공유할 뿐이다. Google Drive 연동은 실시간 싱크가 아닌 수동 트리거 백업으로 구현했다—충돌 해결 로직이 필요 없고, 복잡도가 급격히 내려간다.
이 결정들이 흥미로운 이유는 '덜 하는 것'이 더 나은 사용자 경험을 만든 방식 때문이다. 실시간 싱크를 포기하는 대신 설명 가능하고 예측 가능한 데이터 흐름을 얻었다. 회원가입을 없애는 대신 즉시 써볼 수 있는 진입 장벽을 얻었다. 제약을 의도적으로 설계한 결과다.
두 사례가 함께 가리키는 것
이 두 프로젝트를 나란히 놓으면 하나의 패턴이 보인다. '서버 없이 제품 만들기'는 이제 타협의 결과가 아니라 의도적 전략이 됐다. WebAssembly와 ONNX가 AI 추론을 브라우저로 끌어내렸고, localStorage와 Google Drive API 조합이 데이터 지속성 문제를 서버 없이 해결한다. Next.js App Router와 shadcn/ui는 UI 레이어의 완성도를 빠르게 끌어올리는 레버가 됐다.
프로토타이핑 관점에서 이 흐름은 특히 중요하다. 서버 인프라를 세팅하지 않아도 AI 기능이 들어간 제품을 배포하고 사용자 반응을 확인할 수 있다. v0.dev나 Claude로 UI 초안을 빠르게 뽑고, ONNX 기반 모델을 Web Worker에 붙이고, Vercel에 정적 배포하면—사실상 백엔드 비용 없이 AI 제품의 첫 번째 루프를 완성할 수 있다. 검증 비용이 낮아질수록 실험 횟수는 늘어나고, 실험 횟수가 늘어날수록 제품이 실제 사용자 문제에 가까워질 확률이 높아진다.
남은 현실적 제약과 전망
물론 이 접근이 모든 것을 대체하지는 않는다. 40~80MB 모델 초기 로딩은 모바일 환경과 느린 네트워크에서 여전히 마찰이다. localStorage는 용량 한계(보통 5~10MB)가 있어 데이터가 커지면 IndexedDB나 다른 전략으로 이전해야 한다. GPU 가속 없는 CPU 추론은 대용량 파일에서 처리 시간이 길어진다. 그리고 브라우저 캐시는 사용자가 지울 수 있다—중요한 모델 가중치를 캐시에만 의존하는 것은 UX 리스크다.
그럼에도 방향은 분명하다. WebGPU가 브라우저 표준으로 자리잡으면 클라이언트 사이드 AI 추론 속도는 지금보다 한 자릿수 빨라진다. Transformers.js 같은 라이브러리는 Hugging Face 생태계를 브라우저로 직접 연결하는 파이프를 계속 넓히고 있다. '브라우저가 AI 런타임이 된다'는 명제는 아직 완성형이 아니지만, 이미 충분히 쓸 수 있는 제품을 만들 수 있을 만큼은 현실이 됐다. 지금 당장 서버 없이 AI 기능을 붙인 첫 버전을 배포하지 않을 이유가 점점 줄어들고 있다.