출시 · 모바일 앱

먹관

식품 라벨을 찍으면 소비기한, 원재료, 알레르기 정보가 가족 공유 목록에 들어가는 식재료 관리 앱입니다.

화면

먹관 스토어 소개 사진 1먹관 스토어 소개 사진 2먹관 스토어 소개 사진 3먹관 스토어 소개 사진 4먹관 스토어 소개 사진 5먹관 스토어 소개 사진 6
  • 홈 화면. 7일 안 소비기한·알레르기·보유 집계 아래로 냉동·냉장·실온 태그와 D-day 배지가 붙은 식품 목록
  • 스캔 화면. 과자 라벨을 비추는 카메라와 라벨 분석·오브제 촬영 전환
  • 식품 등록 화면. 라벨에서 읽은 원재료와 소유자 선택, 아이의 우유 알레르기를 알리는 붉은 경고
  • 식품 상세 화면. 주의할 구성원과 성분을 알리는 배너, 식품에 남겨 둔 OCR 원재료명
  • 가족 화면. 우리 가족이 못 먹는 성분과 구성원별 주의 개수
  • 구성원 화면. 아이 프로필에 생년월일과 못 먹는 성분을 고르는 화면

한눈에 보기

맡은 범위
앱(iOS·Android), 관리자 화면, 서버, 스토어 출시
현재
App Store·Google Play 운영 중 · 버전 1.8.0
규모
앱 화면 33개 · 자동 테스트 500여 건
기술
React Native(Expo) · NestJS · PostgreSQL · Gemini
  • 578앱 저장소 커밋
  • 500+자동 테스트
  • 33앱 화면
  • 2스토어, iOS와 Android

중요했던 결정

  1. OCR 먼저, 모델은 그다음

    OCR(폰의 ML Kit, 서버의 Google Vision)이 원문을 뽑고 Gemini는 상품명·분류·원재료·소비기한 정리만 맡습니다. 읽은 원문을 식품에 그대로 남겨 두어 사용자가 확인하고 바로 고칠 수 있습니다.

  2. 먹는 사람 기준으로 읽는 원재료

    구성원마다 못 먹는 성분을 등록해 두면, 스캔한 원재료명을 그와 대조합니다. "같은 시설 제조" 문구까지 함께 보기 때문에 경고가 성분이 아니라 사람 이름으로 나옵니다.

  3. 오프라인이 기본

    모든 쓰기는 폰의 SQLite에 먼저 저장되고 백그라운드에서 동기화됩니다. 지하 마트에서 스캔해도 됩니다.

  4. 광고와 구독을 한 흐름으로

    무료 가구는 AdMob을 보고 유료 가구는 RevenueCat을 거칩니다. 환불과 복원은 서버에서 처리해서 둘이 어긋나지 않습니다.

  5. 운영 중 백엔드 이관

    첫 API는 Fastify·MySQL로 4개월 운영했습니다. NestJS·PostgreSQL로 다시 만들고, ETL 스크립트 2개로 데이터를 옮긴 뒤 프록시에서 트래픽을 넘겼습니다.

기술

  • React Native (Expo)
  • Next.js
  • NestJS
  • PostgreSQL
  • BullMQ
  • SQLite
  • ML Kit
  • Google Vision
  • Gemini
  • Firebase
  • Sentry
  • AdMob
  • RevenueCat
  • Oracle Cloud