跳到正文
GitHub·· 7 天前AI 评分12

NEMOA v1.5:把智能冰箱与衣橱合一的 AI 生活助手

shinjihan80/smart-cart-plus

AI 导读

NEMOA v1.5 发布,将智能冰箱与智能衣橱整合为一款移动优先的 AI 生活助手,自动收集用户的饮食与衣物数据。应用内置 6 个 AI 智能体,基于 Google Gemini API(gemini-2.0-flash)实现图像识别、文本解析与营养分析,每日限额分别为 vision 10、parser 20、nutrition 5、url 5,午夜重置。

正文

NEMOA v1.5

일상을 반듯하게 모으다 — 스마트 냉장고와 옷장을 하나로, AI 라이프스타일 비서 네모아

사각형 벤토 UI(네모)에 사용자의 식(食)과 의(衣) 데이터를 자동 수집(모아)하고, 네모아가 보관 기한·코디·재구매·요리·로테이션·계절·제철까지 챙기는 모바일 퍼스트 앱.

문서 내용
BASIC_SPEC.md v1.5 베이직 전체 기능·한도·체크리스트
PRO_SPEC.md Pro 출시 시 추가될 기능·가격·차등화
MONETIZATION.md MAU 임계치·전환 타이밍·3-Phase 롤아웃
CHANGELOG.md v0.1 → v1.5 시간순 변경 이력
DEPLOY.md 환경변수·Vercel/Netlify·체크리스트

v1.5 출시 준비 (베이직 무료)

  • 법적 고지 — /legal 약관·개인정보, ConsentGate 첫 실행 동의 모달
  • AI 일일 한도 — vision 10·parser 20·nutrition 5·url 5, 자정 리셋, 설정에 잔여 카드
  • Service Worker — 페이지 network-first · 정적 자산 SWR · /offline.html 폴백
  • 로컬 에러 로깅 — window.onerror + React 바운더리, 설정에서 복사·삭제 (원격 전송 X)
  • 익명 사용 통계 — opt-in 전용, day-level 토큰
  • SEO — openGraph/twitter/canonical + robots.txt + sitemap.xml + apple-icon + opengraph-image
  • 테스트 36개 — Node 네이티브 node:test (npm test)
  • CI — GitHub Actions: test → lint → build

홈 대시보드

  • NEMOA 브랜드 헤더 + 시간대별 네모아 인사 + ⌘K 빠른 탐색 버튼
  • 전체 검색 — 상품/레시피/제철 재료 동시 매칭, ⌘K · / · Esc 단축키
    • 제철 재료 매칭 시 "🌸 제철 딸기 냉장고에 담기" 원탭 액션
    • 레시피 매칭 시 "📖 검색어 레시피 N개 보기" GlobalRecipeModal 바로
    • 최근 검색어 5개 자동 저장 + 칩 재선택
  • 퀵 링크 4개 — 제철 달력·레시피·쇼핑 리스트·프로필 (각 동적 배지)
  • 제철 퀵 칩 — 현재 계절 재료 원탭 쇼핑 리스트 담기 + 📖 레시피 바로가기
  • 네모아의 오늘 한 마디 — 11+종 시그널 큐레이션
    • 식품 임박 · 제철+임박(최우선) · 날씨(비/눈/온도) · 계절 꺼내기 알림
    • 영양(단백/채소 부족) · 주간 자주 만든 레시피 · 미도전 즐겨찾기
    • 쇼핑 리스트(주말 아침/5개+) · 제철 피크 장보기 · 제철 먹기 유도 · 자주 같이 만든 메뉴 조합
    • 미착용 의류 · 시간대 인사
    • CTA → 팔레트 사전 검색 prefill: 임박 시 재료명으로 팔레트 바로 열림
  • 제철 힌트 위젯 (col-span-2) — 보유/미보유 상태 자동 분기
  • 제철 체크리스트 위젯 — 이번 계절 N/M 진행 바, 놓친 N종 CTA
  • 데일리 브리핑 — Open-Meteo 실시간 날씨 · 체감온도 · LIVE 배지 + Top 3 추천 의류 칩
  • 오늘 한 그릇 — 보유 식재료 기반 Top 매칭 레시피 + 제철/단골 뱃지
  • 옷장 현황 — 보관/소유자 배지 / 이번 달 지출
  • 냉장고 카루셀 — D-Day + 스와이프 소진
  • 월별 소비 내역 · 주간 인사이트 · 최근 등록 · 오늘의 팁

스마트 냉장고

  • 식품 11종 카테고리 · D-Day 프로그레스 + 영양 + 이미지
  • 🌸 제철 뱃지 — 제철 재료 카드에 자동 표시, D-2 이내면 ⚠️ 강화 경고
  • 2단 필터 (보관 · 식품 그룹) + 🌸 제철 필터 + 3-way 정렬(임박·이름·제철)
  • 제철 재료 섹션 — 칩에 📖 레시피 카운트, 팔레트 경유 모달 오픈
  • 검색 시 제철 자동완성 — 현재 계절 미보유 재료를 칩으로 제안
  • 이번 주 영양 밸런스 — 4대 영양소 커버리지 + 네모아 조언
  • 오늘 뭐 먹지? — 랜덤 + 🔀 다시 고르기, 단골/제철 뱃지
  • 레시피 추천 107종 (한식·양식·일식·중식 + 셰프 스타일·예능 출연 셰프 영감) — 계절(+1.5)·임박(+2)·단골(+최대3)·영양 힌트(+1)·난이도 힌트(±1) 가중치
  • 전체 보기 모달 — 검색 · 11종 필터(전체/이번 계절/즐겨찾기/셰프/예능/간단/보통/도전/아침/점심/간식)
  • 상세 모달 — 조리 스텝 · 타이머 · ♥ 즐겨찾기 · 🌸 제철 재료 하이라이트 · 조리 기록 · 🍳 같이 만들었던 메뉴
  • 재구매 추천 — 소진 히스토리 기반
  • 카드 확장에 📖 이 재료 레시피 버튼 — 재료별 바로 레시피 탐색

스마트 옷장

  • 패션 13종 카테고리 · 실기온 기반 코디 추천 + 로테이션 선호(🌙)
  • 매칭 뱃지 4단계 — ✨ 오늘 딱 / 👍 오늘 적절 / 🌱 계절 맞음 / 🧊 안 맞아요
  • 5-way 정렬 — 이름 · 두께 · 오늘 어울림 · 🔥 자주 입는 순 · 🌙 오래 안 입은 순
  • 계절 꺼내기 배너 — 보관 중 + 현재 계절 맞는 옷 N벌 일괄 꺼내기
  • 가상 코디 미리보기 — ownership 필터(전체/개별/공용), 슬롯별 아이템 순환
  • 스와이프 카드 상세 — 사진 · 메타 · 메모 · 👕 오늘 입었어요 기록
    • "같이 자주 입는 조합" — wearLog 같은 날짜 기반 TOP 3 자동 학습

마이페이지

  • 백업 상태 배너 — 7일 stale 감지 + "지금 백업" CTA
  • 종합 통계 + 보관 현황 + 카테고리 분포
  • 최근 소진 내역 + 월별 지출 추이
  • 📅 올해 활동 요약 — 조리·착용·소진 누적 + 올해 N일째
  • 🪄 장볼 거 추천 — 임박/🔁주기/소진/🌸제철 4신호 자동 추천, 원탭 쇼핑 담기
  • 🛒 쇼핑 리스트 — source별 그룹화(임박·소진·제철·놓친·직접), 5개+ 인라인 검색(⌘K)
    • "담았어요" → 냉장고 자동 추가 (카테고리·기한 추론)
    • 파트너 스텁 — 쿠팡 · 마켓컬리 · 네이버 · 대형마트 (Phase 7)
  • 착용 로그 분석 — 자주 입는 / 오래 안 입은 / 아직 안 입은 TOP 3 + 🔄 로테이션 밸런스 스코어 + 🗓️ 요일별 착용 패턴(최근 4주)
  • 🌸 계절 보관 — 계절 맞는 옷 꺼내기 · 안 맞는 옷 위탁 보관 스텁
  • 🧹 옷장 정리 제안 — 60일+ 미착용 · 한 번도 안 입은 옷
    • 정리 경로별 파트너 추천 (중고 판매 · 기부 · 짐 보관)
    • 카테고리별 분포 칩 (접힌 상태에서도 확인)
  • 조리 로그 분석 — 자주 만든 / 오래된 / 미도전 TOP 3 + 🗓️ 요일별 조리 패턴(최근 4주)
  • 🌸 제철 식탁 히스토리 — 올계절 드신 제철 재료 랭킹 · 못 드신 재료 "모두 담기"
  • 즐겨찾기 레시피 (조리 횟수 표시) + 전체 보기 모달
  • 🚀 파트너 로드맵 — Phase 7 연결 예정 9개 파트너, 도메인별 설명
  • 아카이브 · 알림 설정 · 설정 진입

설정

  • 🧠 네모아가 알고 있는 것 — 레시피 107·제철 48·식품11·패션13·저장코디·파트너 9
  • 🌸 제철 달력 링크 — /seasonal 4계절 × 48종 풀 카탈로그
  • 👥 프로필 관리 — 본인 + 가족 (베이직 최대 2명, 신체·식습관·아바타·권장 사이즈)
  • ✨ 피드백 토글 — 햅틱 · 알림음 · 익명 사용 통계 (opt-in)
  • 🤖 AI 오늘 남은 횟수 — 4 agent × 잔여/총량 + 자정 리셋
  • 🩺 오류 기록 — 최근 10건 표시 · 복사/삭제 (로컬 50건, 원격 전송 X)
  • 📦 저장 용량 — localStorage 사용량 시각화
  • 만료 정리 · 지금 백업 · 백업 복원 · JSON/CSV 내보내기 · 샘플 데이터 추가
  • 🛡️ 백업 후 초기화 — 2단 안전 액션 (다운로드 → 확인 → 초기화)
  • 🧹 검색어·필터 초기화 — nemoa-* 런타임 스캔 (아이템·로그 보호)
  • 전체 데이터 초기화 · 알림 · 앱 정보

/seasonal 제철 달력

  • 4계절 × 48종 식재료 풀 카탈로그
  • 계절별 / 월별 뷰 토글 — 12개월 타임라인, 현재 월 하이라이트
  • 재료 검색(이름·blurb) + 피크 우선 정렬
  • URL 쿼리 동기화 — ?view=month&season=가을 공유/북마크
  • 쇼핑 리스트 담기 + 📖 레시피 팔레트 연결

⌘K 명령 팔레트 (전역)

  • 단축키 — ⌘K/Ctrl+K, / (입력 중이 아닐 때), Esc (비우기+블러)
  • 모바일 — 헤더 🔍 버튼 또는 'nemoa:open-palette' 이벤트
  • 검색 범위 — 레시피 8 · 제철 6 · 보유 아이템 5 · 페이지 8 · 액션 5
  • Fuzzy 매칭 — 공백 제거 정규화로 오타·붙여쓰기 허용
  • Prefix 모드 — > 액션만 · # 페이지만 · ? 레시피만
  • 최근 실행 5개 LRU + 빈 상태 추천 칩 (레시피만/액션만/이번 계절)
  • 그룹 헤더 — 최근 / 레시피 / 제철 재료 / 이동 / 액션 섹션 분리
  • 이벤트 기반 모달 — 레시피 선택 시 GlobalRecipeModal 즉시 오픈, 페이지 이동 없이

상품 등록 (4가지 방법)

방법 이미지 설명
사진 분석 자동 첨부 네모아 Vision이 식품/패션 자동 분류, weatherTags 자동 부여
URL 분석 og:image 자동 쇼핑몰 페이지에서 상품 정보 추출
빠른 추가 Unsplash 자동 자주 구매하는 아이템 원탭 등록
텍스트 입력 수동 영수증/이메일 텍스트 네모아 파싱 (weatherTags 폴백 포함)

개인화 데이터 로그

  • 의류 착용 로그 (nemoa-wear-log) — 옷 ID → 날짜[] · 동일일 공동 착용으로 조합 학습
  • 레시피 조리 로그 (nemoa-cook-log) — 3회+ 단골 뱃지, matchRecipes 가중치
  • 레시피 즐겨찾기 (nemoa-recipe-favorites)
  • 쇼핑 리스트 (nemoa-shopping-list) — source 기반 그룹화
  • 최근 검색어 5개 (nemoa-home-recent-search) — 온보딩 시 샘플 시드
  • 명령 팔레트 최근 5개 (nemoa-palette-recent)
  • 필터/정렬 상태 (nemoa-fridge-*, nemoa-closet-*, nemoa-outfit-owner)
  • 섹션 접기 상태 (nemoa-mypage-*) — 자주 보는 섹션 유지

모두 백업 스냅샷 v2에 포함 · 새 기기 복원 시 완전 이전.


기술 스택

영역 기술
프레임워크 Next.js 16.2.4 (App Router · Turbopack)
언어 TypeScript (strict)
스타일 Tailwind CSS v4 + SUIT 폰트
애니메이션 Framer Motion (spring)
아이콘 Lucide React
AI Google Gemini API (gemini-2.0-flash) + Dual-Review
날씨 API Open-Meteo (키 불필요 · 30분 캐시)
상태 관리 React Context + localStorage (15+ 도메인 키) + createSharedStore
PWA manifest.json + standalone · shortcuts 3개 · icon maskable + apple-icon
오프라인 Service Worker (network-first HTML · SWR 자산 · /offline.html)
SEO metadataBase + openGraph + twitter card + robots.ts + sitemap.ts
테스트 Node 25+ 네이티브 node:test (.mts) — 36 passes, 외부 deps 0
에러 추적 로컬 50건 (errorLog) — Pro에서 opt-in 원격 전송 예정
분석 익명 day-token (analytics, opt-in) — 엔드포인트 미설정 시 no-op
CI GitHub Actions (Node 24 · test · lint · build)

시작하기

npm install
npm run dev
# http://localhost:3000

프로젝트 구조

src/
├── app/              # 5 페이지 + 7 API 라우트
│   ├── page.tsx      # 홈 (13 위젯)
│   ├── fridge/       # 냉장고 (6 섹션)
│   ├── closet/       # 옷장 (4 섹션)
│   ├── mypage/       # 마이페이지 (9 섹션)
│   ├── seasonal/     # 제철 달력 (2 뷰 토글)
│   ├── settings/     # 설정 + KnowledgeSummary
│   └── api/agents/   # 6 AI 에이전트
├── components/
│   ├── CommandPalette.tsx      # ⌘K 전역 오버레이 (fuzzy · prefix · 최근 · 그룹)
│   ├── PaletteButton.tsx       # 페이지 헤더 공용 트리거
│   ├── GlobalRecipeModal.tsx   # 이벤트 기반 전역 레시피 모달
│   ├── PartnerChip.tsx         # Phase 7 enabled/disabled 분기
│   ├── home/                   # 13 위젯 (SeasonalHint/Checklist/ChipRow/QuickLinks 포함)
│   ├── fridge/                 # Swipe · Nutrition · FeelingLucky · Recipe · Rebuy · SeasonalProduce
│   ├── closet/                 # Swipe · OutfitPreview · SeasonalUnstowBanner
│   ├── mypage/                 # 9 섹션 (ShoppingSuggestions · SeasonalHistory · PartnerRoadmap 포함)
│   └── layout/                 # BottomNav · Logo · OnboardingModal · ScrollToTop
├── context/          # CartContext · ToastContext
├── lib/              # 18개 도메인 모듈
│   ├── recipes.ts              # 30종 레시피 + matchRecipes (4종 가중치)
│   ├── seasonalProduce.ts      # 48종 식재료 × 4계절
│   ├── season.ts               # Season 타입 · currentSeasonByMonth · seasonStart
│   ├── partnerLinks.ts         # 9개 파트너 레지스트리 (Phase 7)
│   ├── haptics.ts              # tap/toggle/action/success 공용
│   ├── useSearchShortcut.ts    # 공용 검색 단축키 훅
│   ├── usePersistedState.ts    # localStorage 동기화 훅
│   └── ...                     # weather · nutritionAnalysis · wearLog · cookLog · backup 등
└── data/             # mockData (22개) + monthlySpending (4개월)

브랜드

  • 로고: 두 개의 부드러운 사각형이 겹친 아이콘 = "네모 속 네모" → 모이는 데이터
  • 컬러: brand-primary #4F46E5 (indigo-600)
  • 폰트: SUIT (워드마크는 font-extrabold tracking-tight)
  • 화자: 사용자에게 말을 걸 때 자신을 "네모아"라고 지칭

来源:GitHub · github.com