[Android] ๐Ÿ”ฅ Firebase ํ”„๋กœ์ ํŠธ ๋ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์ถ• ๊ฐ€์ด๋“œ

Last Updated: 2026๋…„ 10์›” 31์ผ

Firebase ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฌด๋ฃŒ ์ œ๊ณต๋Ÿ‰์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค. ๋ชจ์ž„ ์•ฑ ํŠน์„ฑ์ƒ ์ผ์ƒ์ ์ธ ์ง€์ถœ, ์ผ์ •, ๊ฒŒ์‹œํŒ, ํˆฌํ‘œ ๋“ฑ๋ก์€ ํ•˜๋ฃจ์— ์ˆ˜์‹ญ~์ˆ˜๋ฐฑ๊ฑด์ด๋ผ์„œ ๋ฌด๋ฃŒ ํ•œ๋„์˜ 1~5%๋„ ์ฑ„์šฐ๊ธฐ ์–ด๋ ต๋‹ค. ๊ณ ๋กœ ์ถฉ๋ถ„ํžˆ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค.
์ €์žฅ ์šฉ๋Ÿ‰ : 1GB, ๋ฌธ์„œ ์“ฐ๊ธฐ : 20K/day, ๋ฌธ์„œ ์ฝ๊ธฐ : 50K/day, ๋ฌธ์„œ ์‚ญ์ œ : 20K/day, ๋„คํŠธ์›Œํฌ : 10GB/month

1๋‹จ๊ณ„: Firebase ์ฝ˜์†” ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ๋ฐ ์„ค์ •

  1. Firebase ์ฝ˜์†”์— ์ ‘์†ํ•˜์—ฌ ๋กœ๊ทธ์ธํ•ฉ๋‹ˆ๋‹ค.
  2. [ํ”„๋กœ์ ํŠธ ์ถ”๊ฐ€]๋ฅผ ํด๋ฆญํ•˜๊ณ  ํ”„๋กœ์ ํŠธ ์ด๋ฆ„(์˜ˆ: TguBio90)์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
  3. ๊ตฌ๊ธ€ ์• ๋„๋ฆฌํ‹ฑ์Šค ์„ค์ •์€ ํ•„์š”์— ๋”ฐ๋ผ ์ผœ๊ฑฐ๋‚˜ ๋ˆ ๋’ค [ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค๊ธฐ]๋ฅผ ์™„๋ฃŒํ•ฉ๋‹ˆ๋‹ค.
  4. ํ”„๋กœ์ ํŠธ ๋Œ€์‹œ๋ณด๋“œ์—์„œ [Android ์•„์ด์ฝ˜]์„ ๋ˆŒ๋Ÿฌ ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ์„ ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค.
    • ํŒจํ‚ค์ง€ ์ด๋ฆ„: ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค ํ”„๋กœ์ ํŠธ์˜ build.gradle.kts์— ์žˆ๋Š” applicationId์™€ ์ •ํ™•ํžˆ ์ผ์น˜์‹œ์ผœ์•ผ ํ•ฉ๋‹ˆ๋‹ค (์˜ˆ: com.example.tgubio90).
    • google-services.json ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•˜์—ฌ ํ”„๋กœ์ ํŠธ์˜ app/ ํด๋” ํ•˜๋‹จ์— ๋ฐฐ์น˜ํ•ฉ๋‹ˆ๋‹ค.

2๋‹จ๊ณ„: ์ธ์ฆ(Authentication) ์„ค์ •

๋ชจ์ž„ ํšŒ์›๋“ค์ด ๋กœ๊ทธ์ธํ•˜๊ณ  ์•ฑ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ธ์ฆ ๋ฐฉ์‹์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

  1. ์™ผ์ชฝ ๋ฉ”๋‰ด์—์„œ Build > Authentication์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.
  2. [์‹œ์ž‘ํ•˜๊ธฐ]๋ฅผ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค.
  3. Sign-in method(๋กœ๊ทธ์ธ ๋ฐฉ๋ฒ•) ํƒญ์—์„œ ์‚ฌ์šฉํ•  ์ธ์ฆ ๋ฐฉ์‹(์˜ˆ: Google ๋˜๋Š” ์ด๋ฉ”์ผ/๋น„๋ฐ€๋ฒˆํ˜ธ)์„ ์„ ํƒํ•˜๊ณ  ์‚ฌ์šฉ ์„ค์ •(Enable)์„ ์™„๋ฃŒํ•ฉ๋‹ˆ๋‹ค.

3๋‹จ๊ณ„: Cloud Firestore ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒ์„ฑ

  1. ์™ผ์ชฝ ๋ฉ”๋‰ด์—์„œ Build > Cloud Firestore๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.
  2. [๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋งŒ๋“ค๊ธฐ]๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  3. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์œ„์น˜(asia-northeast3 ์„œ์šธ ์ถ”์ฒœ)๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  4. ๋ณด์•ˆ ๊ทœ์น™์€ ์ดˆ๊ธฐ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด ํ…Œ์ŠคํŠธ ๋ชจ๋“œ(Test mode)๋กœ ์‹œ์ž‘ํ•œ ๋’ค, ๋‚˜์ค‘์— ์ธ์ฆ๋œ ์‚ฌ์šฉ์ž๋งŒ ์ ‘๊ทผํ•˜๋„๋ก ๊ทœ์น™์„ ๊ฐ•ํ™”ํ•ฉ๋‹ˆ๋‹ค.

4๋‹จ๊ณ„: Firestore ์ปฌ๋ ‰์…˜ ๋ฐ ๋ฌธ์„œ ๊ตฌ์กฐ ์„ค๊ณ„ (ํ•ต์‹ฌ)

ํ˜„์žฌ ์•ฑ์—์„œ ์‚ฌ์šฉ ์ค‘์ธ ๊ตฌ์กฐ๋Š” ๋ชจ์ž„๋ณ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒฉ๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์ตœ์ƒ์œ„์— groups ์ปฌ๋ ‰์…˜์„ ๋‘๊ณ , ๊ทธ ์•„๋ž˜์— ๋ชจ์ž„ ID(tgubio90) ๋ฌธ์„œ๋ฅผ ๋‘์–ด ํ•˜์œ„ ์ปฌ๋ ‰์…˜๋“ค์„ ๊ด€๋ฆฌํ•˜๋Š” ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค.

๐Ÿ“ 1. members ์ปฌ๋ ‰์…˜ (ํšŒ์› ๊ด€๋ฆฌ)

ํšŒ์›๋“ค์˜ ์ •๋ณด์™€ ์—ญํ• ์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

  • ๊ฒฝ๋กœ: groups/tgubio90/members/{memberId}
  • ์ฃผ์š” ํ•„๋“œ:
    • name (String): ํšŒ์› ์ด๋ฆ„ (์˜ˆ: “๋ฐ”์ด์˜ค90”)
    • role (String): ์ง์ฑ… ๋˜๋Š” ๊ถŒํ•œ (์˜ˆ: “์ด๋ฌด”, “ํšŒ์›”)
    • joinedDate (Number ๋˜๋Š” Timestamp): ๊ฐ€์ž…์ผ

๐Ÿ’ธ 2. expenses ์ปฌ๋ ‰์…˜ (ํšŒ๋น„ ์ง€์ถœ ๋‚ด์—ญ)

๋ชจ์ž„ ํšŒ๋น„ ์‚ฌ์šฉ ๋‚ด์—ญ๊ณผ ์ฐธ์„์ž ์ •๋ณด๋ฅผ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค. (์—…๋กœ๋“œํ•ด์ฃผ์‹  ์ด๋ฏธ์ง€์˜ ๊ตฌ์กฐ ๊ธฐ๋ฐ˜)

  • ๊ฒฝ๋กœ: groups/tgubio90/expenses/{expenseId}
  • ์ฃผ์š” ํ•„๋“œ:
    • amount (Number): ์ง€์ถœ ๊ธˆ์•ก (์˜ˆ: 58258)
    • attendees (String ๋˜๋Š” Array): ์ฐธ์„์ž ๋ช…๋‹จ (์˜ˆ: "์‹ ๊ทœ์‹ ์ฒญ์ž,๋ฐ”์ด์˜ค90")
    • date (Number ๋˜๋Š” Timestamp): ์ง€์ถœ ๋‚ ์งœ (1793113200000 ๋“ฑ)
    • description ๋˜๋Š” title (String): ์ง€์ถœ ๋‚ด์—ญ ์„ค๋ช…

๐Ÿ“… 3. schedules ์ปฌ๋ ‰์…˜ (์ผ์ • ๊ด€๋ฆฌ ๋ฐ ์ง€์ถœ ์—ฐ๋™)

๋ชจ์ž„ ์ผ์ • ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๋ฉฐ, ์ง€์ถœ ๋‚ด์—ญ๊ณผ ID๋กœ ์—ฐ๋™(Fee โž” Schedule)๋˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

  • ๊ฒฝ๋กœ: groups/tgubio90/schedules/{scheduleId}
  • ์ฃผ์š” ํ•„๋“œ:
    • title (String): ์ผ์ • ์ œ๋ชฉ (์˜ˆ: “์ •๊ธฐ ๋ชจ์ž„”)
    • date (Number ๋˜๋Š” Timestamp): ์ผ์ • ๋‚ ์งœ
    • location (String): ๋ชจ์ž„ ์žฅ์†Œ

5๋‹จ๊ณ„: ์•ˆ๋“œ๋กœ์ด๋“œ ํ”„๋กœ์ ํŠธ ์—ฐ๋™ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  1. build.gradle.kts (project): Google Services ํ”Œ๋Ÿฌ๊ทธ์ธ ๋ฒ„์ „ ์„ค์ •
  2. build.gradle.kts (app):
    • Firebase BoM(firebase-bom) ๋ฐ Firestore, Auth ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ถ”๊ฐ€
    • google-services ํ”Œ๋Ÿฌ๊ทธ์ธ ์ ์šฉ (id("com.google.gms.google-services"))
  3. ๋™๊ธฐํ™”(Sync) ํ›„ ์•ฑ์„ ์‹คํ–‰ํ•˜์—ฌ Firestore์— ๋ฐ์ดํ„ฐ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ฝํžˆ๊ณ  ์“ฐ์ด๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

You may also like