모바일 개발의 기기 내 ML: 정의, 프레임워크 및 작동 방식

저자: IT Sectr 게시일: 2026-07-29 읽는 시간: 11 분

기기 내 ML(on-device ML) — 서버로 데이터를 보내지 않고 모바일 기기에서 직접 머신러닝 모델을 실행하는 방식입니다. Google AI, 2025 보고서에 따르면, 70% 이상의 사용자가 개인정보 보호와 네트워크 지연 시간 없음 때문에 on-device ML이 있는 앱을 선호합니다. Apple의 Core ML, Google의 TensorFlow Lite, ML Kit를 사용하면 Vision, NLP, 얼굴 및 객체 인식 작업을 인터넷 없이 최소 전력 소비로 기기에서 완전히 해결할 수 있습니다.

핵심 포인트

  • 기기 내 ML — 서버 측 데이터 처리 없이 모바일 기기에서 직접 머신러닝 모델 실행.
  • Core ML — iOS 및 macOS용 Neural Engine에서 하드웨어 가속을 제공하는 Apple의 프레임워크.
  • TensorFlow Lite — 양자화 및 GPU, NNAPI, XNNPACK 델리게이트를 갖춘 Google의 크로스 플랫폼 솔루션.
  • ML Kit — 모델 생성 없이 텍스트, 얼굴, 바코드 및 객체 인식을 위한 즉시 사용 가능한 API를 갖춘 SDK.
  • Vision 및 NaturalLanguage — iOS에서 이미지 및 텍스트 분석을 위한 내장 ML 도구.

기기 내 ML이란 무엇이며 모바일 앱에 필요한 이유

기기 내 ML(on-device ML)은 원격 서버로 데이터를 보내지 않고 모바일 기기에서 직접 머신러닝 모델을 실행하는 접근 방식입니다. 개인정보 보호가 주요 장점입니다: 사용자 데이터가 기기를 떠나지 않습니다. Google 연구(2024)에 따르면, 63%의 사용자가 서버로 데이터 전송을 요구하는 ML 기능을 거부합니다. On-device ML은 네트워크 지연 시간을 제거하고, 오프라인에서 작동하며, 하드웨어 가속을 통해 전력 소비를 줄입니다.

클라우드 솔루션 대비 on-device ML의 장점

On-device ML은 초 단위가 아닌 밀리초 단위로 데이터를 처리합니다 — 실시간 얼굴 및 객체 인식에 매우 중요합니다. 인터넷 연결 불필요는 또 다른 장점입니다: ML 기능은 비행기 모드와 연결이 불안정한 지역에서도 사용 가능합니다. Core ML은 Apple A12+ 칩의 Neural Engine을 사용하여 1W 미만의 전력 소비로 초당 11조회 연산을 제공합니다. 모바일 앱에서 on-device ML은 Vision, NLP 및 객체 인식 작업의 사실상 표준이 되었습니다.

모바일 앱의 주요 on-device ML 시나리오

모바일 앱의 ML은 얼굴 인증(Face ID), Snapchat 및 Instagram의 AR 필터, Pose Detection이 있는 피트니스 트래커, Adobe Scan의 OCR 스캔, 키보드의 예측 입력에 사용됩니다. 특정 작업을 위한 맞춤형 모델은 Core ML(iOS) 또는 TensorFlow Lite(Android)를 통해 생성됩니다. ML Kit는 모델 훈련 없이 텍스트, 얼굴 및 바코드 인식을 위한 일반적인 시나리오에 적합합니다.

Core ML: iOS용 기기 내 ML을 위한 Apple의 프레임워크

Core ML은 iPhone, iPad, Mac 및 Apple Watch에서 ML 모델을 실행하기 위한 Apple의 프레임워크입니다. 최적의 하드웨어 가속을 자동으로 선택합니다: A12+ 기기의 신경망에는 Neural Engine(11 TOPS), 이미지 처리 작업에는 GPU, 순차 계산에는 CPU를 사용합니다. Core ML은 .mlmodel(원본) 및 .mlmodelc(컴파일됨) 형식을 지원합니다. PyTorch 및 TensorFlow의 모델 변환은 토폴로지와 가중치를 보존하는 Python 라이브러리인 coremltools를 통해 수행됩니다.

Create ML 및 coremltools

Create ML은 코드 작성 없이 간단한 모델을 훈련시키기 위한 Apple의 앱입니다. 프로덕션에서는 coremltools를 사용합니다 — PyTorch, TensorFlow 및 scikit-learn에서 변환하는 도구입니다. Coremltools는 float32에서 float16 및 int8로의 양자화, 색상 공간 팔레트화 및 모델 크기 감소를 위한 중복 연산 제거를 지원합니다.

python
import coremltools as ct

model = ct.convert(
    "resnet50.mlmodel",
    source="pytorch",
    convert_to="mlprogram"
)
model.save("Resnet50.mlpackage")

Neural Engine 및 Core ML 하드웨어 가속

Neural Engine은 Apple A12 이상 칩의 특수 신경 프로세서입니다. 16개 코어가 1W 미만의 전력 소비로 초당 최대 11조회 연산을 수행합니다. Core ML은 신경망 계산을 자동으로 Neural Engine으로, GPU 호환 계산을 Metal GPU로 라우팅합니다. 개발자가 기기를 선택할 필요가 없습니다 — Core ML이 Performance Report를 통해 모델과 사용 가능한 하드웨어를 분석하여 수행합니다.

TensorFlow Lite: Google의 크로스 플랫폼 기기 내 ML

TensorFlow Lite(TFLite)는 Android, iOS 및 Linux에서 ML 모델을 실행하기 위한 Google의 크로스 플랫폼 솔루션입니다. 모델은 .tflite 형식이며 TensorFlow 에코시스템의 TFLiteConverter를 통해 생성됩니다. TFLite는 float32에서 int8로의 양자화를 지원하여 분류 작업에서 97–99% 정확도를 유지하면서 모델 크기를 4배 줄입니다. Google Play Services for TFLite는 앱을 다시 출시하지 않고도 런타임을 자동으로 업데이트합니다.

TFLiteConverter 및 모델 양자화

TFLiteConverter는 TensorFlow 모델을 .tflite 형식으로 변환하는 주요 도구입니다. 훈련 후 int8 양자화는 전체 데이터 세트에 접근하지 않고도 모델을 300MB에서 75MB로 압축합니다. 양자화 인식 훈련(QAT)은 ImageNet에서 1% 미만의 최소 정확도 손실을 제공합니다. TFLiteConverter는 그래프 가지치기 및 TFLite 런타임에서 지원하지 않는 연산 제거도 지원합니다.

python
import tensorflow as tf

converter = tf.lite.TFLiteConverter.from_saved_model(
    "saved_model_dir"
)
converter.optimizations = [tf.lite.Optimize.DEFAULT]
tflite_model = converter.convert()

TFLite 델리게이트: GPU, NNAPI 및 XNNPACK

델리게이트 없이 TFLite는 하드웨어 가속 사용 시보다 CPU에서 3–5배 느리게 모델을 실행합니다. GPU 델리게이트는 Android에서 OpenCL 및 OpenGL ES 3.1을, Core ML 델리게이트는 iOS에서 Neural Engine을 사용합니다. NNAPI 델리게이트는 Android 8.1+에서 NPU 및 DSP를 활용합니다. XNNPACK 델리게이트는 모바일 프로세서에 최적화된 ARM CPU에서 크로스 플랫폼 가속을 제공합니다. 델리게이트를 선택하려면 null 검사와 함께 TfLiteGpuDelegate.create()를 사용하세요.

ML Kit: 모바일 개발에서 ML을 위한 즉시 사용 가능한 솔루션

ML Kit는 on-device ML을 위한 즉시 사용 가능한 API를 갖춘 Google의 SDK입니다. 모바일 앱에서 ML Kit는 텍스트 인식(손글씨 포함 50+ 언어), 얼굴 감지(468개 얼굴 키포인트), 바코드 스캔(QR, EAN-13, Code 128, PDF417, Data Matrix) 및 객체 감지에 사용됩니다. 모든 API는 인터넷 없이 기기에서 완전히 작동합니다. ML Kit는 통합 API로 iOS 및 Android에서 사용 가능합니다.

ML Kit의 얼굴 감지 및 텍스트 인식

얼굴 감지는 얼굴 윤곽, 눈썹, 눈, 코, 입술의 좌표와 머리 기울기 각도 및 눈 상태를 반환합니다. AR 마스크 및 카메라 필터가 가장 인기 있는 사용 사례입니다. 텍스트 인식은 인쇄된 문자에서 최대 99% 정확도로 사진에서 텍스트를 추출합니다. API는 CameraX를 통한 실시간 인식을 지원합니다.

kotlin
val recognizer = TextRecognition.getClient()
val image = InputImage.fromBitmap(bitmap)

recognizer.process(image)
    .addOnSuccessListener { result ->
        result.textBlocks.forEach { block ->
            println(block.text)
        }
    }

ML Kit의 바코드 스캔 및 객체 감지

바코드 스캔은 카메라의 비디오 스트림에서 실시간으로 바코드를 인식합니다. 객체 감지는 바운딩 박스와 클래스 레이블(사람, 자동차, 동물)로 이미지의 객체를 식별합니다. 포즈 감지는 피트니스 앱 및 동작 분석을 위해 33개의 신체 키포인트를 결정합니다. 이미지 레이블링은 최대 10개의 의미론적 이미지 레이블을 반환합니다 — "자연", "도시", "음식".

Vision 및 NaturalLanguage: iOS 및 Android의 내장 ML 도구

Apple은 타사 SDK 설치 없이 Vision 및 NaturalLanguage를 통해 내장 ML 솔루션을 제공합니다. Vision(VNRequest)은 기기에서 얼굴, 텍스트, 바코드 및 윤곽 감지를 수행합니다. NaturalLanguage(NLTokenizer)는 토큰화, 표제어 추출, 언어 식별 및 감정 분석을 제공합니다. Android에서는 ML Kit(인식) 및 android.speech의 SpeechRecognizer(음성)를 통해 유사 기능이 구현됩니다. 내장 도구는 모델 다운로드가 필요하지 않습니다 — 시스템에 사전 설치되어 있습니다.

Vision 프레임워크: VNRequest 및 VNCoreMLRequest

Vision에는 VNDetectFaceRectanglesRequest(얼굴 감지), VNRecognizeTextRequest(텍스트 인식), VNDetectBarcodesRequest(바코드) 및 VNDetectHumanBodyPoseRequest(골격)가 포함됩니다. VNCoreMLRequest는 사용자 정의 Core ML 모델을 Vision 파이프라인에 통합합니다 — 예를 들어, 감지된 얼굴의 감정 분류. 모든 요청은 최소 지연 시간으로 Neural Engine에서 실행됩니다.

swift
let request = VNRecognizeTextRequest { request, error in
    guard let observations = request.results
        as? [VNRecognizedTextObservation] else { return }
    for observation in observations {
        let topCandidate = observation
            .topCandidates(1).first
        print(topCandidate?.string as? String ?? "")
    }
}

let handler = VNImageRequestHandler(
    cgImage: image, options: [:]
)
try? handler.perform([request])

iOS의 NaturalLanguage 및 SFSpeechRecognizer

NaturalLanguage는 텍스트를 토큰으로 분할하는 NLTokenizer, 언어 식별을 위한 NLLanguageRecognizer(72개 언어) 및 NLSentimentAnalyzer 텍스트 감정 분석을 제공합니다. SFSpeechRecognizer는 기기에서 50+ 언어를 지원하는 음성 인식 API입니다(iOS 13+). 사용 전 SFSpeechRecognizerAuthorizationStatus 권한이 필요합니다. 결과는 SFSpeechRecognitionResultHandler를 통해 비동기적으로 도착합니다.

자주 묻는 질문

기기 내 ML이란 무엇인가요?

기기 내 ML(on-device ML)은 서버로 데이터를 보내지 않고 모바일 기기에서 직접 머신러닝 모델을 실행하는 접근 방식입니다. Core ML, TensorFlow Lite 및 ML Kit가 on-device ML의 주요 프레임워크입니다.

Core ML과 TensorFlow Lite의 차이점은 무엇인가요?

Core ML은 Neural Engine 가속을 갖춘 iOS 및 macOS용 Apple의 프레임워크입니다. TensorFlow Lite는 Android, iOS 및 Linux용 Google의 크로스 플랫폼 솔루션입니다. Core ML은 Apple 기기에서 더 나은 성능을, TFLite는 다양성을 제공합니다.

ML Kit는 어떤 작업을 해결하나요?

ML Kit는 일반적인 컴퓨터 비전 및 NLP 작업을 해결합니다: 텍스트, 얼굴, 바코드, 객체 및 포즈 인식. 모든 API는 인터넷 없이 기기에서 작동하며 자체 모델을 만들 필요가 없습니다.

on-device ML에 인터넷이 필요한가요?

아니요, on-device ML은 완전히 로컬에서 작동합니다. 모델이 기기에 로드되어 인터넷 연결 없이 실행됩니다. ML Kit는 더 높은 정확도의 클라우드 기반 API 버전도 제공하지만, on-device 모드는 오프라인에서 사용 가능합니다.

모바일 개발에서 어떤 ML 프레임워크를 선택해야 하나요?

iOS 전용이라면 Core ML을 선택하세요 — Neural Engine을 사용하며 Apple 에코시스템과 긴밀하게 통합됩니다. 크로스 플랫폼 프로젝트에는 TensorFlow Lite를 선택하세요. 사용자 정의 모델 없이 일반적인 작업에는 즉시 사용 가능한 API를 갖춘 ML Kit를 선택하세요.

요약

  • 기기 내 ML — 서버로 데이터를 보내지 않고 제로 네트워크 지연 시간으로 모바일 기기에서 직접 모델 실행.
  • Core ML — iOS 및 macOS용 Neural Engine에서 하드웨어 가속을 제공하는 Apple의 프레임워크.
  • TensorFlow Lite — int8 양자화 및 GPU, NNAPI, XNNPACK 델리게이트를 갖춘 Google의 크로스 플랫폼 솔루션.
  • ML Kit — 모델 생성 없이 텍스트, 얼굴 및 바코드 인식을 위한 즉시 사용 가능한 API를 갖춘 SDK.
  • Vision 및 NaturalLanguage — 타사 라이브러리 설치 없이 iOS의 내장 ML 도구.
  • 양자화는 최소 정확도 손실로 모델 크기를 4배 줄입니다 — 모바일 앱의 표준.
  • On-device ML은 민감한 데이터 및 오프라인 사용 시나리오가 있는 앱의 필수 표준입니다.

턴키 방식의 모바일 애플리케이션을 개발해 드립니다

IT Sectr는 2017년부터 스타트업과 기업을 위한 iOS 및 Android 애플리케이션을 만듭니다. 저희가 상담해 드리고 최적의 솔루션을 제안하겠습니다.

프로젝트 논의