Building a Zero-Cost AI Feature in Flutter with Gemma 4 + Firebase

개요

Gemma 4와 Firebase를 활용하여 Flutter 앱에서 API 비용 없이 온디바이스(on-device) AI 기능을 구현하는 방법을 설명한다.

주요 내용

  • 클라우드 AI API의 한계: 인디 개발자가 클라우드 AI API를 사용할 경우, 사용자 증가에 따라 비용이 선형적으로 증가하고, 사용자 데이터가 기기를 떠나야 하며, 오프라인 시 기능이 제한되고, 제3자 API 의존성이 발생하는 단점이 있다.
  • 온디바이스 AI의 이점: 온디바이스 AI는 위의 클라우드 AI API의 단점을 모두 해결하며, 모델이 로컬에서 실행되고 사용자 데이터가 네트워크를 거치지 않으며, 오프라인에서도 작동하고, 개발자가 전체 스택을 제어할 수 있다.
  • 구현 스택:
  • Gemma 4: Google의 최신 엣지 최적화 오픈 모델로, 4비트 양자화를 통해 2GB RAM 미만에서 실행 가능하며, 네이티브 함수 호출(function calling)을 지원하여 앱 로직과 직접 연동할 수 있다.
  • flutter\_gemma: LiteRT-LM 추론 엔진을 Dart API로 래핑한 패키지로, GPU 가속, 스트리밍 응답, 멀티모달 비전 지원, 함수 호출을 Flutter에서 제공한다. Android, iOS, Web, Desktop에서 단일 코드베이스로 지원한다.
  • Firebase: Firestore를 사용하여 AI 결과 데이터를 저장 및 동기화하고, Firebase Auth로 사용자 인증을 처리하며, 필요 시 Firebase Storage를 활용한다. AI 추론 자체는 Firebase를 거치지 않고 결과물만 저장 및 동기화한다.
  • 아키텍처: 사용자가 앱에서 생성한 콘텐츠(메모, 사진, 음성)는 Gemma 4에 의해 온디바이스에서 처리(태깅, 요약, 분류)되며, 이 AI 결과물만이 Firestore에 저장되고 Firebase를 통해 다른 기기로 동기화된다. 사용자의 원본 데이터는 기기를 떠나지 않으며, 모델은 네트워크 호출을 하지 않는다.
  • 구현 예시: 온디바이스에서 자동으로 태그와 요약을 생성하고 Firebase로 동기화하는 간단한 메모 앱을 구축하는 과정을 설명한다. flutter_gemma 패키지를 추가하고 Gemma 4 E2B 모델을 다운로드한 후, FlutterGemma.getActiveModel을 사용하여 온디바이스 추론을 실행하고, 그 결과를 Firestore에 저장하며, Firebase의 실시간 리스너를 통해 동기화한다.
  • 고려 사항 (Gotchas):
  • 모델 다운로드 크기: Gemma 4 E2B 모델은 약 1.5GB로, 첫 실행 시 사용자에게 진행 상황을 명확히 알리고 Wi-Fi 전용 다운로드 옵션을 제공하는 등의 사용자 경험 관리가 필요하다.
  • 콜드 스타트 시간: 모델을 메모리에 로딩하는 데 몇 초가 소요될 수 있으므로, 로딩 상태를 표시하고 사용자에게 'AI 준비 중'으로 설명하여 기대치를 관리해야 한다.
  • 클라우드 AI 사용 시점: 온디바이스 Gemma 4는 요약, 분류, 간단한 생성, 태깅 등 특정 작업에 적합하며, 복잡한 다단계 추론, 긴 컨텍스트 윈도우, GPT-4 수준의 기능이 필요한 작업에는 클라우드 AI가 더 적합하다.

시사점

이 아키텍처는 인디 개발자가 지속 가능한 AI 기반 제품을 출시할 수 있도록 지원하며, 무제한적인 AI 비용, 사용자 데이터 프라이버시 보장, 오프라인 기능 지원, 무료 확장성을 제공한다.

원문 읽기 →
원문을 불러오는 중...

댓글

GitHub Discussions