혹시 카톡으로 "오늘 저녁 뭐야?"라고 물어봤는데, 아내는 "어제 말했잖아!"라고 답해서 분위기 싸해진 적 없으신가요?
분명히 대화는 나눴는데 기록은 흩어져 있고, 누구는 기억하고 누구는 잊어버리는 상황. 이건 기억력의 문제가 아니라 '데이터 관리'의 문제입니다.
우리가 만들 패밀리 허브의 심장은 바로 '데이터베이스'입니다. 오늘은 우리 가족의 일상을 어떻게 코드로 바꿀 수 있을지, 그 설계를 완벽하게 끝내보겠습니다.
💡 오늘 설계의 핵심 목표
1. 데이터가 중복되지 않는 효율적인 NoSQL 구조 잡기
2. 체크리스트, 달력, 식단표의 필수 필드 정의
3. 구글 Gemini AI가 읽기 편한 데이터 형식 선택
1. 데이터가 중복되지 않는 효율적인 NoSQL 구조 잡기
2. 체크리스트, 달력, 식단표의 필수 필드 정의
3. 구글 Gemini AI가 읽기 편한 데이터 형식 선택
첫 번째 기둥: 아이들 숙제 & 준비물 체크리스트
가장 먼저 설계할 건 '체크리스트'입니다. 단순히 "숙제하기"라고 적는 게 아니라, 누가 했는지, 언제까지 해야 하는지가 명확해야 합니다.
우리는 Firestore의 Collections 기능을 사용할 겁니다. 'todo'라는 큰 바구니 안에 각 항목을 Documents로 담는 방식이죠.
이때 중요한 건 'status(상태)' 필드입니다. 0은 미완료, 1은 완료로 구분하면 나중에 CSS로 줄 긋기 효과를 주기에 아주 편해집니다.
두 번째 기둥: 가족 공유 달력의 데이터 구조
달력은 데이터 양이 가장 많아질 수 있는 부분입니다. 단순히 날짜만 저장하는 게 아니라, '구성원별 색상' 정보를 함께 저장해야 합니다.| 필드명 | 데이터 타입 | 설명 |
|---|---|---|
| title | String | 일정 제목 (예: 수학 학원) |
| start_date | Timestamp | 시작 시간 (ISOString 권장) |
| member_id | String | 일정 주인공 (엄마, 아빠, 첫째 등) |
| category | String | 중요도 또는 분류 (식단, 경조사 등) |
여기서 꿀팁! 날짜 데이터는 나중에 Gemini AI가 분석하기 좋게 표준 형식(YYYY-MM-DD)으로 저장하는 게 좋습니다. 그래야 AI 비서가 "내일 일정을 브리핑해 줘"라고 할 때 정확히 답변할 수 있거든요.
세 번째 기둥: 스마트 식단표와 장보기 리스트
저녁 메뉴 고민은 전 세계 모든 부모의 공통 숙제죠. 식단표 데이터 구조에는 '메뉴명'뿐만 아니라 '재료' 필드를 추가할 예정입니다.
// Firestore에 저장될 식단 데이터 예시 (JSON 형식)
{
"day": "2026-03-25",
"meal_type": "dinner",
"menu": "김치찌개",
"ingredients": ["돼지고기", "두부", "대파"],
"is_ready": false
}
이렇게 재료를 리스트 형태로 담아두면, 나중에 "장보기 리스트로 보내기" 버튼 하나로 재료 항목들을 체크리스트에 즉시 추가할 수 있습니다.
또한, Gemini AI에게 "냉장고에 남은 돼지고기로 할 수 있는 다른 메뉴 추천해 줘"라고 요청할 때 이 데이터를 그대로 넘겨주면 아주 스마트한 답변을 받을 수 있죠.
결론: 설계가 탄탄하면 코딩은 거들 뿐
✅ 오늘 설계 완료 리스트
- Firestore 기반의 유연한 NoSQL 데이터 구조 확정
- 구성원별 색상 및 상태값이 포함된 상세 필드 정의
- 식단과 장보기 리스트의 유기적인 연동 로직 기획
- Firestore 기반의 유연한 NoSQL 데이터 구조 확정
- 구성원별 색상 및 상태값이 포함된 상세 필드 정의
- 식단과 장보기 리스트의 유기적인 연동 로직 기획
기초 공사가 끝났습니다! 이제 이 설계도를 바탕으로 실제 코딩 환경을 구축할 차례입니다.
내일 포스팅에서는 **[도구] VS Code 설치 및 개발 환경 세팅 가이드**를 다룹니다. 본격적으로 에디터를 켜고 첫 코드를 입력하는 날이니, 설레는 마음으로 기다려 주세요!
다음 포스트 예고: [도구] 10분 만에 끝내는 개발 환경 세팅 (초보자용) ➔