AI가 단순히 말하는 것을 넘어 실행하는 시대
지금까지 AI 챗봇은 사용자의 질문에 답변하는 데 집중해왔습니다. 하지만 진정한 AI의 가치는 모델이 세상을 설명하는 것을 넘어 직접 상호작용할 때 발휘됩니다. 그 핵심 메커니즘이 바로 Tool-use(도구 사용), 즉 함수 호출(Function Calling)입니다. 모델이 자연어 명령을 분석해 "지도 앱에서 샌프란시스코 공항을 보여줘" 같은 요청을 실제 OS 앱 인텐트로 변환하고 실행하는 것이죠.
문제는 이 모든 과정을 온디바이스(On-Device) 에서 처리하는 것이 엄청난 기술적 난제라는 점입니다. 전통적인 함수 호출은 대형 언어 모델(LLM)을 필요로 했고, 이는 모바일 기기의 메모리와 배터리 한계를 훨씬 초과했습니다. 구글이 이번에 발표한 Google AI Edge Gallery 앱 업데이트는 이 장벽을 허물었습니다.
참고 자료: 이 글은 구글 공식 개발자 블로그의 발표 내용을 기반으로 작성되었습니다.
주요 데모: Mobile Actions & Tiny Garden
Mobile Actions – 완전한 오프라인 비서
Mobile Actions 데모는 FunctionGemma를 활용해 어시스턴트 상호작용을 완전히 오프라인에서 구현합니다. 모델은 다음과 같은 자연어 명령을 파싱하고 적절한 OS 도구나 앱 인텐트를 식별합니다.
- "지도에서 샌프란시스코 공항을 보여줘" → 지도 앱 실행 및 위치 검색
- "내일 오후 2시 30분 요리 수업 캘린더 이벤트 생성" → 캘린더 앱 일정 추가
- "손전등 켜줘" → 시스템 손전등 토글
Tiny Garden – 커스텀 앱 로직의 가능성
Tiny Garden은 사용자가 음성 명령으로 가상의 텃밭을 관리하는 미니 게임입니다. "위쪽 줄에 해바라기를 심고 물을 줘"라는 명령이 plantCrop이나 waterCrop 같은 특정 앱 함수로 분해되어 실행됩니다. 이는 270M 파라미터의 작은 FunctionGemma 모델이 서버 없이도 복잡한 커스텀 게임 로직을 처리할 수 있음을 보여줍니다.
iOS 지원: 크로스 플랫폼으로 확장
구글은 Android 앱에 이어 iOS용 Google AI Edge Gallery도 App Store에 출시했습니다. 이제 iOS 개발자들도 멀티턴 AI 채팅, 이미지 질의(Ask Image), 오디오 스크라이브(로컬 음성-텍스트 변환) 등 동일한 온디바이스 기능을 활용할 수 있습니다. 특히 Mobile Actions와 Tiny Garden 데모가 Apple 하드웨어에서도 매끄럽게 동작하는 점이 인상적입니다.
이는 Google AI Edge 스택의 통합된 성능 덕분입니다. 온디바이스 성능, 프라이버시, 오프라인 신뢰성을 모든 모바일 플랫폼에서 동일하게 제공하겠다는 구글의 의지가 느껴집니다.
성능 벤치마크: Pixel 7 Pro에서 1916 tokens/sec
직접 속도를 체험하고 싶다면 Gallery 앱 내에서 벤치마크를 실행할 수 있습니다(Android 전용, iOS는 곧 지원 예정). Mobile Actions 데모 기준, Pixel 7 Pro CPU에서의 성능은 놀라울 정도로 빠릅니다.
- Prefill (입력 처리): 1916 tokens/sec
- Decode (출력 생성): 142 tokens/sec
이 수치는 온디바이스 AI가 실시간 상호작용에 충분히 사용될 수 있음을 증명합니다.
나만의 로컬 에이전트 구축하기
데모에서 영감을 받았다면, 직접 FunctionGemma 모델을 파인튜닝하고 앱에 함수 호출을 구현할 수 있습니다. 구글은 Google AI Edge의 크로스 플랫폼 기능을 기반으로 개발자 문서와 샘플 코드를 제공하고 있습니다.
한국 개발 생태계에서의 적용 맥락
국내 앱 개발 환경에서는 네트워크 연결이 불안정한 사용자 경험이 자주 문제됩니다. 예를 들어 지하철이나 산악 지역에서도 동작하는 오프라인 비서는 차별화된 UX를 제공할 수 있습니다. 또한, FunctionGemma의 작은 모델 크기(270M)는 국내 중소 규모 스타트업도 부담 없이 탑재할 수 있는 장점이 있습니다. 다만, 한국어 자연어 처리 성능은 아직 영어 대비 검증이 덜 되어 있으므로, 실제 서비스 적용 전에 한국어 데이터로 추가 파인튜닝이 필요할 수 있습니다.
이 기술의 한계 또는 주의사항
- 모델 크기 vs 정확도 트레이드오프: 270M 모델은 가볍지만 복잡한 명령이나 모호한 표현에서 오류율이 높아질 수 있습니다.
- 배터리 소모: 지속적인 온디바이스 추론은 배터리 수명에 영향을 줄 수 있습니다. 구글은 최적화를 강조하지만, 실제 사용 패턴에 따라 차이가 있을 수 있습니다.
- 앱 인텐트 제한: 현재는 OS 기본 앱과 몇몇 데모 앱에 국한됩니다. 타사 앱과의 연동은 추가 작업이 필요합니다.
다음 단계 학습 방향
- FunctionGemma 모델 파인튜닝 가이드 – 공식 문서를 통해 나만의 함수 호출 모델을 만들어보세요.
- Google AI Edge SDK 탐색 – Android와 iOS 모두 지원하는 SDK를 활용해 실제 앱에 통합해보세요.
- 온디바이스 AI 보안 – 로컬에서 실행되지만, 민감한 명령어가 악용되지 않도록 입력 검증 로직을 설계하는 것이 중요합니다.
결론: 온디바이스 AI의 새로운 장
Google AI Edge Gallery는 단순한 데모 앱을 넘어, 온디바이스 함수 호출의 실현 가능성을 보여주는 중요한 이정표입니다. 1916 tokens/sec의 빠른 처리 속도, iOS까지 확장된 지원, 그리고 270M 모델로도 가능한 복잡한 앱 로직은 앞으로 모바일 AI의 방향성을 명확히 제시합니다.
함께 보면 좋은 글
지금 바로 Google AI Edge Gallery를 다운로드하고, 나만의 로컬 에이전트를 만들어보세요. 해피 코딩!

핵심 코드 예제: FunctionGemma를 활용한 함수 호출 구현
아래는 FunctionGemma 모델을 사용해 자연어 명령을 앱 함수로 매핑하는 간단한 예시입니다. 이 코드는 Google AI Edge SDK를 기반으로 합니다.
# FunctionGemma를 사용한 온디바이스 함수 호출 예제
# Google AI Edge SDK 필요 (pip install google-ai-edge)
from google_ai_edge import FunctionGemma
from typing import Dict, Any
# 1. 사용 가능한 함수 정의 (앱 인텐트)
app_functions = {
"open_map": {
"description": "지도 앱을 열고 특정 위치를 표시합니다.",
"parameters": {
"location": {"type": "string", "description": "표시할 장소 이름"}
}
},
"create_calendar_event": {
"description": "캘린더에 새 일정을 추가합니다.",
"parameters": {
"title": {"type": "string"},
"time": {"type": "string", "description": "HH:MM 형식"},
"date": {"type": "string", "description": "YYYY-MM-DD 형식"}
}
},
"toggle_flashlight": {
"description": "손전등을 켜거나 끕니다.",
"parameters": {}
}
}
# 2. 모델 초기화 (270M 파라미터 경량 모델)
model = FunctionGemma.from_pretrained("google/functiongemma-270m")
# 3. 자연어 명령을 함수 호출로 변환
def parse_command(user_input: str) -> Dict[str, Any]:
"""사용자 입력을 분석해 호출할 함수와 인자를 반환합니다."""
result = model.predict_function_call(
prompt=user_input,
available_functions=app_functions
)
return result
# 4. 실행 예시
if __name__ == "__main__":
commands = [
"지도에서 샌프란시스코 공항을 보여줘",
"내일 오후 2시 30분 요리 수업 캘린더 이벤트 생성",
"손전등 켜줘"
]
for cmd in commands:
func_call = parse_command(cmd)
print(f"명령: {cmd}")
print(f"호출 함수: {func_call['function_name']}")
print(f"인자: {func_call['arguments']}")
print("-" * 40)
실행 결과 예시:
명령: 지도에서 샌프란시스코 공항을 보여줘
호출 함수: open_map
인자: {'location': '샌프란시스코 국제공항'}
----------------------------------------
명령: 내일 오후 2시 30분 요리 수업 캘린더 이벤트 생성
호출 함수: create_calendar_event
인자: {'title': '요리 수업', 'time': '14:30', 'date': '2025-04-11'}
----------------------------------------
명령: 손전등 켜줘
호출 함수: toggle_flashlight
인자: {}
이 예제는 FunctionGemma가 얼마나 간단하게 앱 함수 호출을 예측할 수 있는지 보여줍니다. 실제 앱에서는 이 결과를 받아 Android 인텐트나 iOS 액티비티로 연결하면 됩니다.

온디바이스 함수 호출의 장단점 비교
| 항목 | 온디바이스 (Google AI Edge) | 클라우드 기반 (GPT-4 등) |
|---|---|---|
| 지연 시간 | 매우 낮음 (밀리초 단위) | 네트워크 지연 발생 (수백 ms ~ 수 초) |
| 오프라인 동작 | 가능 | 불가능 |
| 프라이버시 | 데이터가 기기를 벗어나지 않음 | 서버로 데이터 전송 필요 |
| 모델 크기 | 270M ~ 2B 파라미터 | 100B+ 파라미터 |
| 정확도 (복잡한 명령) | 상대적으로 낮음 | 높음 |
| 배터리 소모 | 중간 (지속적 추론 시) | 낮음 (네트워크 통신만) |
| 비용 | 무료 (기기 리소스 사용) | API 호출 비용 발생 |
| 업데이트 주기 | 앱 업데이트 필요 | 서버 측에서 즉시 업데이트 가능 |
주의사항
FunctionGemma는 경량 모델이기 때문에 모호한 표현이나 복합 명령어에서 오류가 발생할 수 있습니다. 예를 들어 "내일 아침 7시에 알람 맞춰주고, 8시에 커피숍 가는 길에 세탁소 들러" 같은 다중 명령은 분해가 어려울 수 있습니다. 이런 경우, 명령을 단순화하거나 사용자에게 추가 입력을 요청하는 UX 설계가 필요합니다.
또한, 한국어 지원은 아직 초기 단계입니다. 영어 명령어에 비해 한국어 자연어 처리 성능이 떨어질 수 있으므로, 한국어 데이터로 파인튜닝한 모델을 사용하거나, 명령어를 영어로 받는 하이브리드 방식을 고려해보세요.

마무리: 지금 바로 시작하세요
Google AI Edge Gallery는 온디바이스 AI의 가능성을 실제로 체험할 수 있는 완벽한 도구입니다. 이 글에서 소개한 Mobile Actions와 Tiny Garden 데모를 직접 실행해보고, FunctionGemma 모델의 성능을 벤치마크해보세요.
다음 단계 액션 아이템:
- Google AI Edge Gallery 다운로드 (Android / iOS)
- 공식 문서에서 FunctionGemma 파인튜닝 가이드 확인
- 간단한 앱 프로토타입에 함수 호출 기능 통합해보기
온디바이스 AI는 단순한 트렌드가 아니라, 모바일 앱 개발의 새로운 패러다임입니다. 지금 시작하면 경쟁에서 한 발 앞서갈 수 있습니다.
함께 보면 좋은 글