냉장고 속 재료로 시작하는 오늘의 요리
가지고 있는 재료로 무엇을 만들 수 있을까요?
OhMyCook은 내 재료와 요리 조건에 맞는 레시피를 추천하고,
요리 중 궁금한 점을 AI 셰프에게 물어볼 수 있는 서비스입니다.
냉장고에 있는 재료를 등록하고, 먼저 사용하고 싶은 재료를 골라보세요. 요리 종류, 인분, 맵기, 난이도, 조리 시간을 선택하면 AI가 조건에 맞는 레시피를 추천합니다.
| 1. 재료·조건 선택 | 2. AI 레시피 생성 | 3. 추천 결과 확인 |
|---|---|---|
![]() |
![]() |
![]() |
| 먼저 쓸 재료와 요리 조건을 선택해요. | AI가 만들 수 있는 요리를 찾아요. | 추천된 레시피에서 오늘의 메뉴를 골라요. |
내 냉장고에 재료를 모아두고, 만든 요리는 커뮤니티에서 나눠보세요. 프로필에서는 개인 설정과 저장한 레시피, 장보기 목록을 확인할 수 있습니다.
| 내 냉장고 | 커뮤니티 | 내 프로필 |
|---|---|---|
![]() |
![]() |
![]() |
| 보유 재료를 종류별로 관리해요. | 요리를 공유하고 이야기를 나눠요. | 개인 설정과 저장한 목록을 확인해요. |
- 내 냉장고 관리 — 재료를 검색해 추가하거나 영수증 이미지를 올려 재료를 등록합니다.
- 재료 기반 레시피 추천 — 보유 재료와 우선 사용할 재료, 요리 조건을 바탕으로 메뉴를 추천합니다.
- AI 셰프와 대화 — 레시피에 대해 질문하고 조리 방법이나 재료에 관한 도움을 받습니다.
- 레시피 저장과 장보기 목록 — 마음에 드는 레시피를 저장하고 필요한 재료를 장보기 목록으로 관리합니다.
- 요리 커뮤니티 — 레시피와 요리 경험을 공유하고 댓글과 좋아요로 소통합니다.
- 계정과 개인 설정 관리 — Supabase Auth로 이메일·Google 로그인을 지원하고, 닉네임·프로필 이미지·요리 수준·알레르기 등 개인 설정을 Supabase 데이터베이스에 저장합니다.
- 한국어·영어 지원 — 원하는 언어로 서비스를 이용할 수 있습니다.
| 역할 | 사용 기술 |
|---|---|
| 화면 개발 | React, TypeScript, Vite |
| 스타일과 애니메이션 | Tailwind CSS, Framer Motion |
| 레시피 추천·영수증 분석·AI 대화 | Gemini API |
| 인증·프로필·커뮤니티 데이터 | Supabase |
설치와 실행 안내
Node.js와 npm이 필요합니다.
npm install프로젝트 루트에 .env.local 파일을 만들고 다음 값을 설정합니다.
VITE_SUPABASE_URL=https://your-project.supabase.co
VITE_SUPABASE_ANON_KEY=your_public_anon_keyAI 기능을 제공하는 서버 환경에는 다음 값을 설정합니다. 현재 API 코드는 Gemini 키를 API_KEY로 읽습니다.
API_KEY=your_gemini_api_key
# 레시피 이미지 검색을 사용할 경우
GOOGLE_SEARCH_CX=your_google_custom_search_engine_id현재 이미지 검색 코드도 API_KEY를 사용하므로, 이미지 검색에는 해당 키로 Google Custom Search API에 접근할 수 있어야 합니다.
npm run dev기본 주소는 http://localhost:3000입니다.
프런트엔드는 AI 요청을 /api/gemini로 보냅니다. 현재 Vite 설정에는 이 경로를 처리하는 서버나 프록시가 없으므로, AI 기능까지 사용하려면 API 코드를 실행하는 서버와 연결해야 합니다. npm run dev는 프런트엔드 개발 서버를 실행합니다.
인증과 사용자 프로필, 커뮤니티 기능에는 Supabase 설정이 필요합니다. 현재 앱 코드에서 사용하는 테이블은 다음과 같습니다.
profiles— 사용자 프로필과 요리 설정community_posts— 공유한 레시피와 게시글community_comments— 게시글 댓글
각 테이블은 앱에서 사용하는 필드와 접근 정책에 맞춰 준비해야 합니다. 저장소에는 이 테이블들의 전체 스키마를 생성하는 마이그레이션이 포함되어 있지 않습니다.
재료, 저장한 레시피, 장보기 목록은 현재 브라우저의 로컬 스토리지에 저장합니다. 별도의 Supabase 헬퍼는 user_profiles, user_ingredients, search_events, recipe_search_counts를 참조하므로, 앱에서 직접 사용하는 테이블과 구분해야 합니다.
npm run build




