
"서버 비용 0원"이라는 말, 사실 비용이 사라진 게 아니라 사용자 기기의 배터리랑 발열로 옮겨간 것이었어요. 온디바이스 AI 깔아보고 나서야 이걸 알겠더군요.
얼마 전에, 사이드로 만들던 메모 앱에 요약 기능 하나 붙이려다 견적을 뽑아봤어요. 클라우드 AI API를 쓰면 호출당 과금이 붙는데, 사용자가 늘수록 그게 고스란히 제 카드값이 되는 구조였습니다. 그래서 일단 기기에서 바로 도는 쪽부터 찔러보기로 했어요.
온디바이스 AI를 먼저 택한 이유 세 가지
서버를 안 거치고 기기 안에서 추론을 돌리면 좋은 점이 분명 있습니다.
- 비용입니다. 모델을 한 번 내려받고 나면 추론할 때마다 따로 돈이 나가지 않아요. 사용자가 만 명이 되든 십만 명이 되든 호출량 과금이 안 붙습니다.
- 응답 속도예요. 네트워크를 왕복할 필요가 없으니까, 첫 글자가 나오기까지 걸리는 체감 지연이 수십 ms대로 줄어들어요. 클라우드처럼 네트워크를 한 번 왕복하는 것과 비교하면 몇 배는 빠른 셈이지요. 자동완성처럼 즉각 반응이 중요한 곳에서 체감이 큽니다.
- 프라이버시랑 오프라인입니다. 데이터가 기기 밖으로 안 나가니까 민감한 정보 유출 걱정이 줄고, 비행기 모드에서도 동작해요.

ML Kit 텍스트 인식부터 깔아본 후기
구글의 모바일 SDK인 ML Kit 은 진입이 생각보다 가벼웠습니다. 의존성 한 줄 추가하고 TextRecognizer 에 이미지를 넘기면, 서버 호출 없이 글자랑 좌표를 돌려주더라고요.
val recognizer = TextRecognition.getClient(TextRecognizerOptions.DEFAULT_OPTIONS)
val image = InputImage.fromBitmap(bitmap, 0)
recognizer.process(image)
.addOnSuccessListener { visionText ->
// visionText.text 에 인식된 전체 텍스트
}
.addOnFailureListener { e ->
// 인식 실패 처리 (네트워크 아닌 기기 내부 오류)
}
여기서 한 가지 짚고 싶은 게 있어요. 이 텍스트 인식이나 바코드 스캔 같은 전통적인 ML Kit 기능은 구형 기기에서도 잘 돕니다. 근데 뒤에 나올 요약·교정 같은 GenAI 기능은 완전히 다른 물건이에요. 요구 사양도, 동작 방식도 따로 노는 별개라고 보시면 되겠습니다.
온디바이스 번역·요약, 어디까지 되나
번역은 언어팩을 기기에 동적으로 내려받아 오프라인으로 돌립니다. 언어 하나당 약 30MB인데요. 30MB가 어느 정도냐면, 음악 파일 일고여덟 곡 정도라 부담이 큰 용량은 아니에요. 한 번 받아두면 비행기 모드에서도 번역이 됩니다.
문제는 요약·교정 쪽입니다. 이건 안드로이드 시스템 서비스인 AICore 위에서 제미나이 나노(Gemini Nano) 모델을 호출하는 구조라고 해요. 앱에 모델을 직접 안 넣으니까 가볍긴 한데, 짧은 글 요약이나 맞춤법 다듬기 같은 가벼운 작업에 특화돼 있습니다. 제 체감으로는 챗GPT나 클로드(Claude)급의 복잡한 추론까지는 기대하기 어렵습니다.
실제로 부딪힌 온디바이스 AI의 한계
깔아보고 나서 현실적으로 막힌 지점이 세 군데였습니다.
1. 자원 비용이 사용자에게 넘어갑니다
서버 비용 0원의 대가는 결국 사용자 기기의 배터리·RAM이에요. 추론이 돌 때마다 발열이 올라가고, 심하면 스로틀링이 걸리면서 앱 전체가 버벅대더라고요. 비용이 사라진 게 아니라 안 보이는 곳으로 옮겨간 셈이지요.
2. 기기 파편화가 생각보다 셉니다
GenAI API는 픽셀 8 시리즈와 9·10, 갤럭시 S24 세대부터 S25·S26 같은 기기에서 동작하는 것으로 알려져 있어요. 다만 같은 기기여도 모델 버전(나노 1·2)이 갈리고 실제 지원 여부도 제각각이니까, 런타임에서 checkFeatureStatus() 로 확인하고 들어가는 게 안전합니다. "온디바이스"라는 말이 모든 기기 지원을 뜻하는 게 아니었어요. 대부분 사용자를 커버하려면 구형 기기는 클라우드로 빠지는 폴백(fallback) 구현이 사실상 필수입니다.
3. 모델 통제권이 제 손에 없습니다
모델을 앱이 아니라 OS(AICore)가 관리하니까, 제가 버전이나 동작을 못 잡거든요. OS가 업데이트되면 같은 입력에도 출력이 달라질 수 있어요. 그래서 결과를 그대로 믿지 말고 검증 로직을 한 겹 깔아둬야 합니다.

온디바이스와 서버 AI, 작업 성격으로 나눠 쓰기
제가 보기엔 둘 중 하나를 고르는 게 아니라 작업 성격으로 나누는 게 맞다고 봅니다.
호출이 잦고 데이터가 민감한 작업, 그러니까 입력 자동완성 같은 건 온디바이스로 내리는 게 유리해요. 반대로 고품질 결과가 중요한 긴 문서 분석은 서버에 남기는 게 안전합니다. 그리고 어느 쪽이든 최신 기기는 온디바이스, 구형은 클라우드로 자동 분기하는 추상화 한 겹을 미리 깔아두면 나중에 덜 고생한다고 확신합니다.
개인적으로는 처음부터 GenAI 요약 같은 무거운 걸 노리지 말고, ML Kit 텍스트 인식 → 번역 → GenAI 순으로 한 칸씩 올라가는 걸 추천드리고 싶네요. 기본 기능은 구형 기기에서도 도니까 사용자 손실 없이 안전하게 감을 잡을 수 있어요.
저라면 이번 메모 앱은 온디바이스로 전부 밀지 않고, 자동완성만 기기로 내리고 요약은 서버에 남겨둘 생각이에요. 온디바이스 AI는 비용을 없애는 기술이 아니라 서버에서 사용자 기기로 옮기는 선택이고, 그 무게를 어디에 둘지 정하는 게 설계의 첫 단추니까요.
'Android 개발' 카테고리의 다른 글
| Android XR 오디오 글래스 D-160, 안드 앱에 미리 박을 한 줄 자리 3개 (0) | 2026.06.12 |
|---|---|
| 제미나이가 경쟁사 앱을 호출하는 날, 내 사이드 앱은 준비됐을까 (0) | 2026.05.17 |
| Project Aluminium 출시 전에 안드로이드 앱에서 미리 손봐야 할 4가지 (0) | 2026.05.15 |