안녕하세요! ARCOA 지안입니다. 👋
지난 글에서 Firestore Database를 만들었다면, 이제는 실제로 데이터를 넣어볼 차례입니다.
컬렉션? 문서? 필드?
엑셀 데이터를 어떻게 넣지?
Firestore의 구조는 간단해요.
⭐ 컬렉션(폴더) → 문서(파일) → 필드(셀)
이번 실습에서는:
✦ card_master 컬렉션 만들기
✦ 필드 유형(타입) 설정 (string, number, array 등)
✦ 샘플 카드 데이터 입력하기
실습을 위한 준비물:
- 엑셀 또는 구글 시트로 정리한 카드 데이터
- 최소 2~3개 카드 샘플 (card_id, card_name, card_type 등)
준비되었다면, 손으로 직접 데이터를 넣어보면서 Firestore 입력 감각을 익혀봅시다 🚀
Step 1. 핵심 컬렉션 구조 설계
1-1. Firebase Console 접속
1-2. Firestore Database로 이동
- 왼쪽 메뉴에서 (그림 1) ✦① 빌드 → ✦② Firestore Database 클릭
- (그림 1) ✦③ 프로젝트 바로가기로 한번에 이동할 수도 있어요!
- (그림 1) ✦④ 컬렉션 시작 클릭

Step 2. 컬렉션 ID 설정
2-1. 컬렉션 ID 네이밍 규칙
- Static (기준 정보) _master ⭕
- card_master: 카드 정보
- category_master: 카테고리
- level_master: 등급 정보
- Dynamic (사용자 흔적) _master ❌
- users: 사용자 정보
- users/{uid}/requests: 추천 요청
- users/{uid}/logs: 행동 기록
- 네이밍 스타일 (일관성 유지):
- 언더스코어: card_master ✅ (권장, 가장 흔함)
- 카멜케이스: cardMaster
- 소문자만: cardmaster
⭐ 중요 핵심
- _master 유무로 Static/Dynamic 구분
- 한 프로젝트에서 하나의 스타일로 통일
2-2. card_master 컬렉션 만들기
- ARCOA 앱의 정적 데이터인 신용카드 데이터를 예시로 만들어보겠습니다.
- (그림 2) ✦⑤ 컬렉션 ID에 card_master 입력

TIP 왜 'card_master'인가요?
- card - 신용카드 데이터
- master - Static 데이터(기준 정보)를 의미
Step 3. 첫 문서와 필드 설정
3-1. 문서 ID 자동 생성
- 자동 생성: Firestore가 랜덤 ID 생성 (예: a7Kd2Xm9...)
- 수동 입력: 규칙적인 ID 가능 (예: card_sh_01)
- 이번 실습에서는 자동 생성으로 진행 → 나중에 대량 업로드 시 체계적 ID 부여
- (그림 3) ✦⑦ 문서 ID는 자동 ID 버튼 클릭
3-2. 필드 설정
- (그림 3) ✦⑧~⑩ 각 칸에 맞는 정보를 예시 표의 1줄을 참고하여, 본인 데이터에 맞는 필드 1개 완성
- (그림 3) ✦⑪을 클릭해서 준비한 데이터와 일치되는 필드 작성

| ✦⑧ 필드 | ✦⑨ 유형 ⭐ | ✦⑩ 샘플 값 | 설명 |
| card_id | string | SH_01 | 카드 고유 번호 |
| card_name | string | Mr.Life | 카드 이름 |
| card_type | string | 신용 | 카드 분류 |
| card_company | string | 신한 | 카드사 |
| card_brand |
array | 국내;S&;VISA | 브랜드 |
| image_url | string | https://... | 이미지 URL |
| fee_kr | number | 15000 | 연회비 국내 |
| fee_global | number | 18000 | 연회비 해외 |
| is_active | boolean | true | 활성 여부 |
TIP 필드 유형(타입) 가이드
유형(타입) 설명 예시 string 텍스트 카드명, URL, ID 등 number 숫자 ⭐반드시 숫자 단독 입력 금액, 비율, 포인트 등 boolean true/false on/off, 공개 여부 등 array 여러 값을 하나의 필드에 저장 태그 목록 ["카페", "점심"] timestamp 날짜/시간 2030-10-03 23:11 map 하나의 필드 안에 구조화된 객체 (JSON 객체) { amount: 3000, unit: "원" }
3-3. 가장 흔한 실수
- 숫자를 따옴표를 붙여 string으로 입력 ❌ "3" → ⭕ 3
- 빈 값을 "-", N/A 등 string으로 입력 ❌ "-" → ⭕ null (엑셀에서는 비워두기)
- 여러 값인데 string으로 선택 ❌ 유형 string → ⭕ 유형 array
Step 4. 첫 카드 저장하기
4-1. 저장 버튼 클릭
- (그림 3) ✦⑫ 저장 버튼 클릭
4-2. 생성된 문서 확인
- (그림 4) card_master 컬렉션에 ✦⑬ "Mr.Life 신용카드" 문서가 완성되었어요!

4-3. 추가 문서 만들기
- FlutterFlow 연동을 위해 최소 3개의 데이터 필요
- 같은 방법으로 문서 2개 더 만들기 → 완벽하지 않아도 나중에 수정 가능!
- (그림 4) ✦⑭ 문서 추가 버튼 클릭
TIP 대량의 데이터도 이렇게 만들어요?
데이터를 직접 넣어보며 "필드 유형(타입)"을 구분하고, 익히기 위해 Firestore Console을 사용했습니다.
대량 데이터 업로드 방법은 #5편에서 설명하니 기대해주세요!
✅ 완료 체크리스트
[ ] Firestore Console에서 card_master 컬렉션 생성
[ ] 첫 문서에 필드(card_id, card_name 등) 추가
[ ] 필드 유형(string, number, boolean)을 올바르게 설정
[ ] 샘플 카드 데이터 2~3개 입력 완료
[ ] 컬렉션/문서/필드 구조를 이해함
디자이너를 위한 요약
Firestore는 엑셀이 아니라 '구조화된 JSON'이다.
필드 타입이 명확해야 앱이 데이터를 제대로 읽는다.
손으로 입력하며 익힌 감각이 나중에 자동화의 기준이 된다.
다음 글
✦ 디자이너(비개발자)를 위한 Firestore 셋업
├ 1 ✦ 설계·타입·관계·보안규칙 기본 개념 완료
├ 2 ✦ Database 만들기와 버전/위치/모드 선택 완료
├ 3 ✦ 첫 데이터 넣기: Static 컬렉션 실습 완료
├ 4 ✦ DB의 문지기, 보안 규칙 작성
└ 5 ✦ 한 번에 채우는 데이터 + FlutterFlow 활용
지금까지 만든 card_master는 누구나 읽고 쓸 수 있는 상태예요. 실제 서비스에서는 매우 위험하죠.
프로덕션 모드로 만들었지만, 보안 규칙이 없으면 의미가 없어요. 다음 편에서 마무리합니다 ✦
DB의 문지기, 보안 규칙 작성 ✦ Firestore 셋업 #4
안녕하세요! ARCOA 지안입니다. 👋 지난 글에서 card_master 컬렉션을 만들고 데이터를 넣었는데요, 지금 이 데이터는 누구나 읽고 쓸 수 있는 상태예요. 프로덕션 모드면 안전하지 않아? 프로덕션
dev.arcoa.kr
'Firebase' 카테고리의 다른 글
| 한 번에 채우는 데이터 + FlutterFlow 활용 ✦ Firestore 셋업 #5 (0) | 2025.12.11 |
|---|---|
| DB의 문지기, 보안 규칙 작성 ✦ Firestore 셋업 #4 (6) | 2025.12.08 |
| Database 만들기와 버전/위치/모드 선택 ✦ Firestore 셋업 #2 (3) | 2025.12.04 |
| 설계·타입·관계·보안규칙 기본 개념 ✦ Firestore 셋업 #1 (0) | 2025.12.03 |
| 디자이너(비개발자)를 위한 Firestore 셋업 ✦ 총 5편 (0) | 2025.12.02 |