RecallMe 구축: Flutter와 Kiro를 사용한 치매 케어용 온-디바이스 AI 동반자

발행: (2025년 12월 6일 오전 03:40 GMT+9)
9 min read
원문: Dev.to

Source: Dev.to

소개

치매는 전 세계적으로 5천5백만 명 이상에게 영향을 미칩니다. 가장 가슴 아픈 도전 중 하나는 사랑하는 사람이 가족을 인식하지 못하거나 소중한 기억을 떠올리지 못하게 되는 상황입니다. 기존 솔루션은 대부분 클라우드 기반 AI에 의존해 프라이버시 문제가 발생하고 지속적인 인터넷 연결이 필요합니다.

RecallMe는 Flutter로 만든 프라이버시 우선 온‑디바이스 AI 동반자로, 치매 환자가 얼굴을 인식하고 기억을 떠올릴 수 있도록 도와주며 데이터를 절대 디바이스 밖으로 내보내지 않습니다.

핵심 기능

  • 온‑디바이스 얼굴 인식 – Google ML Kit와 커스텀 256 차원 임베딩 알고리즘 사용.
  • AI 기반 기억 대화 – 상황을 이해하는 채팅 (Azure OpenAI GPT‑4, 온‑디바이스 모델로 교체 가능).
  • 음성 상호작용 – 자연스럽고 접근성 높은 커뮤니케이션 (음성‑텍스트 변환 및 텍스트‑음성 변환).
  • 스마트 루틴 관리 – 알림, 시간대 인식, 진행 상황 추적 기능 포함.
  • 완전 오프라인 – 클라우드 없음, 프라이버시 문제 제로, 모든 데이터가 로컬에 저장됩니다.

기술 스택

계층기술
UIFlutter 3.7+, Material Design with a dementia‑friendly theme
상태 관리Provider
로컬 저장소Hive (NoSQL)
얼굴 감지Google ML Kit (Arm‑optimized TensorFlow Lite)
임베딩 생성Kotlin (custom algorithm)
유사도 검색Cosine similarity
음성 입력speech_to_text package
카메라 접근camera package
이미지 처리image package
네이티브 TTSAndroid TextToSpeech engine
AI 대화Azure OpenAI (GPT‑4) – can be swapped for an on‑device LLM
빌드 도구Android Studio, VS Code, Kiro (AI‑powered IDE)

커스텀 임베딩 알고리즘 (256 D)

  • 색상 히스토그램 – 64 D
  • 공간 그리드 특징 – 64 D
  • 그라디언트 특징 – 6 D
  • LBP 텍스처 분석 – 16 D
  • 사분면 평균 – 4 D

이 알고리즘은 Kotlin에서 전부 실행되며, NEON SIMD 명령어를 활용해 Arm 아키텍처에 최적화되었습니다.

얼굴 인식 워크플로

// 1. Face Detection (using ML Kit)
Future<List<FaceDetection>> detectFaces(Uint8List imageBytes) async {
  final result = await _channel.invokeMethod('detectFaces', {
    'imageBytes': imageBytes,
  });
  return result.map((face) => FaceDetection.fromMap(face)).toList();
}

// 2. Generate Embedding (custom algorithm in Kotlin)
// Combines multiple feature extraction techniques
// Returns 256‑dimensional vector

// 3. Match Against Stored Embeddings
double similarity = calculateCosineSimilarity(
  newEmbedding,
  storedEmbedding
);
if (similarity > 0.45) {
  // Match found!
}

모든 단계가 로컬에서 실행되며 네트워크 요청이 발생하지 않습니다.

Kiro와 함께한 개발

AI‑powered IDE인 Kiro는 .kiro/steering/에 위치한 steering documents 덕분에 개발 속도를 크게 높였습니다:

  • product.md – 치매 친화적 디자인 원칙, 대상 사용자, 핵심 기능.
  • structure.md – 계층형 아키텍처 (Presentation → State → Business Logic → Data)와 코드 조직 패턴.
  • tech.md – 기술 스택, 의존성, 빌드 명령.

이 문서들은 Kiro에 깊은 컨텍스트를 제공해, 다음을 만족하는 코드를 생성하도록 했습니다:

  • 따뜻한 색상 팔레트 (부드러운 노랑, 크림, 주황).
  • 파일 명명 규칙 (snake_case, _screen.dart 접미사).
  • Provider 기반 상태 관리.
  • Hive 데이터베이스 스키마.

예시 대화

Me: Build a routine management screen with add/edit/delete functionality, notification scheduling, and completion tracking.
Kiro: Generates a complete implementation following our architecture patterns, using Provider for state, Hive for persistence, and our warm color theme.

결과: 15개 이상의 화면이 일관된 패턴, 시간대 인식 알림, 높은 코드 품질로 며칠 만에 구축되었습니다(주당이 아니라 주 단위).

사용자 경험

  • 얼굴 식별: 카메라를 사람에게 향하면 즉시 “Sarah (신뢰도 85 %)”와 같이 표시됩니다.
  • 기억 채팅: 사진을 탭하면 대화가 시작되고, AI는 최근 5개의 메시지를 기억하며 사진 메타데이터(이름, 연도, 인물, 기억 단어)를 포함해 짧고 간단한 문장으로 답변합니다.
  • 음성 우선 상호작용: 사용자는 자연스럽게 말하고, 응답은 TTS를 통해 음성으로 전달돼 타이핑이 필요 없습니다.
  • 루틴 스케줄링: 홈, 일정, 일일 작업 화면에서 정확한 시간, 알림, 진행 상황 추적이 가능한 일일 루틴을 관리합니다.
  • 주간 보고서: 보호자를 위한 시각적 진행 요약을 제공합니다.

모든 데이터는 디바이스에 남아 있습니다:

  • 얼굴 임베딩은 Hive에 저장.
  • 사진은 앱 전용 디렉터리에 저장.
  • 민감한 데이터(API 키, PIN)는 로컬에서 암호화.

Arm 디바이스를 위한 성능 최적화

  • 히스토그램 계산을 위한 NEON SIMD.
  • Big.LITTLE‑aware 작업 스케줄링.
  • 이미지 처리용 효율적인 메모리 패턴.
  • 가능한 경우 GPU 가속(ML Kit 활용).

이 앱은 중급 Arm 디바이스에서도 부드럽게 실행돼 넓은 사용자층이 접근할 수 있습니다.

배운 점

  • 온‑디바이스 ML: 정확도와 성능 제약 사이의 균형.
  • 접근성: 인지 장애를 위한 UI/UX 설계.
  • 프라이버시: 모든 AI 처리를 로컬에 머무르게 보장.
  • 통합: 여러 AI 기술을 매끄럽게 결합.

오픈 소스 & 커뮤니티

RecallMe는 다음을 목표로 오픈 소스화되었습니다:

  • 개발자에게 온‑디바이스 ML 기법을 학습하게 함.
  • 치매 친화적 디자인 패턴 제공.
  • Arm 최적화 모범 사례 시연.
  • 프라이버시‑우선 AI 애플리케이션을 더 많이 만들도록 영감 제공.

레포지토리:

git clone https://github.com/Gaurav-derry/Recall

레포에는 전체 소스 코드, 설정 방법, 아키텍처 문서, Arm 디바이스 빌드 가이드가 포함되어 있습니다.

향후 개선 사항

  • Azure OpenAI를 온‑디바이스 LLM으로 교체.
  • 다국어 지원.
  • 보호자를 위한 대시보드와 분석 기능.
  • 헬스 모니터링 디바이스와 통합.

결론

RecallMe는 정교한 AI가 완전히 모바일 디바이스에서 실행되면서도 프라이버시와 접근성을 보장할 수 있음을 보여줍니다. Flutter의 크로스‑플랫폼 역량, 온‑디바이스 ML, 그리고 Kiro의 AI‑powered 개발 워크플로를 결합함으로써 사람들의 삶에 실질적인 변화를 가져오는 애플리케이션을 만들 수 있습니다.

기술: Flutter, Dart, Kotlin, Google ML Kit, Azure OpenAI, Hive, Provider
개발 도구: Kiro (AI‑powered IDE), Android Studio, VS Code

Back to Blog

관련 글

더 보기 »