프로젝트 소개 — FridgeAI

냉장고 속 재료를 기억하고, 유통기한이 가까운 것부터 알려주며, 그 재료로 만들 요리를 추천한다

핵심 소주제

1

유통기한 중심 재고 관리

식재료마다 수량, 유통기한, 보관 위치(냉장/냉동/실온), 최소 수량을 기록한다. 유통기한이 없으면 구매일과 보관 기간으로 추정하고(추정 표시), 임박·만료·부족 상태를 뱃지로 보여 준다.

2

영수증 한 장으로 재고 채우기

영수증 사진을 S3에 올리면 Gemini Vision이 품목을 뽑는다. 사용자가 확인·수정한 품목만 재고에 담아 AI 인식 오류가 그대로 저장되지 않게 한다.

3

지금 써야 하는 재료로 레시피 추천

임박 재료를 우선해 Gemini가 레시피를 추천하고, 평가(취향 카드)를 쌓아 개인화한다. 키가 없거나 호출이 실패해도 준비된 레시피로 대체해 화면이 비지 않는다. 비로그인 사용자에게는 시간대별 요리를 보여 준다.

4

온프레미스 LLM 어시스턴트

대화형 어시스턴트는 로컬 GPU에서 vLLM으로 띄운 EXAONE을 쓴다. 웹은 채팅 요청만 통합 API(api.cloverky.cloud)로 프록시한다.

5

웹 · 모바일 · 통합 백엔드

Next.js 웹(Vercel)과 Flutter 앱이 있고, 백엔드는 여러 프로젝트를 경로로 나눠 담은 헥사고날 구조의 FastAPI(Cloudflare 터널)다. FridgeAI는 /api/fridge/* 바운디드 컨텍스트를 쓴다.

주요 기능

기능설명상태
재고 관리식재료 CRUD, 소비·추가, 보관 위치·상태 관리구현
영수증 스캔S3 업로드 → Gemini Vision 추출 → 확인 후 재고 반영구현
AI 레시피 추천임박 재료 우선 추천, 폴백 레시피, 비로그인 시간대 추천구현
취향 카드레시피 평가(recipe_feedback)로 개인화구현
AI 어시스턴트EXAONE(vLLM) 채팅 프록시구현
쇼핑 연결부족 재료 감지 → 장바구니 메모 · 쇼핑몰 검색 링크구현
위치 기반 날씨좌표 → 한글 지명 + 날씨, 3단 폴백구현
소셜 로그인Google·Kakao·Naver, 사전가입 강제, 데모 계정, admin 역할구현
냉장고 달리기미니게임, 최고 기록 계정 저장구현
스마트 알림유통기한 D-3/D-1 · 재고 부족 푸시설계
소비 패턴 분석소비·폐기 통계설계

기술 스택

WEBNext.js 16 · React 19 · TypeScript · Tailwind v4 · shadcn/ui · Prisma 5
MOBILEFlutter (Android · Web · Windows)
BACKENDPython · FastAPI · SQLAlchemy 2 (async) · Alembic · Redis
AIGemini (Vision · 레시피) · EXAONE on vLLM · LangGraph
INFRANeon PostgreSQL · AWS S3 · Vercel · Cloudflare Tunnel · Docker Compose

아키텍처

계층기술배포
웹 (lucky/)Next.js + Next API 라우트 + PrismaVercel · fridge.cloverky.cloud
모바일 (fortune/)Flutter—
API (clover/)FastAPI, 헥사고날 · 바운디드 컨텍스트Docker · Cloudflare Tunnel · api.cloverky.cloud
DBPostgreSQLNeon
파일영수증 이미지AWS S3
LLMEXAONE (vLLM, :8001)로컬 WSL systemd