์„œ๋ฒ„๋ฆฌ์Šค ์ปดํ“จํŒ… ์˜์—ญ์—์„œ Firestore๋Š” ์ธ๊ธฐ๊ฐ€ ๋†’์•„์ง€๊ณ  ์žˆ๋Š” ์ฃผ๋ชฉํ• ๋งŒํ•œ ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค. Google Firebase ํ”Œ๋žซํผ์˜ ์ผ๋ถ€์ธ Firestore๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฐฑ์—”๋“œ ์ธํ”„๋ผ ์—†์ด๋„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•˜๊ณ  ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•˜๋Š” ์œ ์—ฐํ•˜๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๋ฉฐ ์•ˆ์ „ํ•œ ์™„์ „ ๊ด€๋ฆฌํ˜• NoSQL ํด๋ผ์šฐ๋“œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ž…๋‹ˆ๋‹ค. ์˜จ๋ผ์ธ ๊ฒŒ์ž„, IoT, ๋ฉ”์‹œ์ง• ๋“ฑ๊ณผ ๊ฐ™์€ ์‚ฌ์šฉ ์‚ฌ๋ก€๋ฅผ ์œ„ํ•ด ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ๋™๊ธฐํ™”ํ•˜๋Š” ๋ฐ ํŠนํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

Firestore๋Š” ๋ฌธ์„œ ๊ธฐ๋ฐ˜ NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์ปฌ๋ ‰์…˜ ๊ธฐ๋ฐ˜ NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์žฅ์ ์„ ๋ชจ๋‘ ํ™œ์šฉํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์„ ๋‹จ์ˆœํ™”ํ•˜๋Š” ์ง๊ด€์ ์ธ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๊ฐœ๋ฐœ์ž๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ง๊ด€์ ์ด๊ณ  ์ค‘์ฒฉ๋œ ๊ฐœ์ฒด๋กœ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด ๊ฐœ์ฒด๋Š” ์ปฌ๋ ‰์…˜์œผ๋กœ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์—ฐํ•œ ์„œ๋ฒ„๋ฆฌ์Šค ๋ฌธ์„œ์— ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค. Firestore ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์€ ํŠธ๋ฆฌ ๊ตฌ์กฐ์™€ ์œ ์‚ฌํ•˜๋ฏ€๋กœ ๋ฐ์ดํ„ฐ ๊ตฌ์„ฑ ๋ฐ ํƒ์ƒ‰์ด ๋งค์šฐ ์‰ฝ๊ณ  ์ดํ•ดํ•˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค.

๊ฐ•๋ ฅํ•œ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง ๊ธฐ๋Šฅ ์™ธ์—๋„ Firestore๋Š” ํšจ์œจ์ ์ด๊ณ  ๊ฐ•๋ ฅํ•œ ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰์„ ์ง€์›ํ•˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์•„ํ‚คํ…์ฒ˜์™€ ์„ค๊ณ„๋กœ ์ธํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์ „ ์„ธ๊ณ„ ์–ด๋””์—์„œ๋‚˜ ์งง์€ ๋Œ€๊ธฐ ์‹œ๊ฐ„์œผ๋กœ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค(์ฝ๊ธฐ ๋ฐ ์“ฐ๊ธฐ ์ž‘์—…)๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ธ€๋กœ๋ฒŒ ์ ‘๊ทผ์„ฑ์€ Google Cloud Platform์˜ ๊ณ ๊ธ‰ ๋„คํŠธ์›Œํ‚น ์‹œ์Šคํ…œ๊ณผ ๋ฐ์ดํ„ฐ ๋ณต์ œ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ํ†ตํ•ด ๋‹ฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. Firestore์˜ ๊ธฐ์„ฑ ๋‹ค์ค‘ ์ง€์—ญ ๋ฐฐํฌ ๊ธฐ๋Šฅ๊ณผ ๊ฒฐํ•ฉํ•˜๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ํ•ญ์ƒ ์ „ ์„ธ๊ณ„ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ผ๊ด€๋˜๊ณ  ๋น ๋ฅธ ์„ฑ๋Šฅ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Firestore์˜ ์ฃผ์š” ์žฅ์  ์ค‘ ํ•˜๋‚˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์ตœ์‹  ์ •๋ณด๋ฅผ ์œ ์ง€ํ•˜๊ณ  ๋ฐฑ์—”๋“œ์™€ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋™๊ธฐํ™”ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๊ฐ•๋ ฅํ•œ ์‹ค์‹œ๊ฐ„ ๋™๊ธฐํ™” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฐ์ดํ„ฐ๊ฐ€ ์—…๋ฐ์ดํŠธ๋˜๋ฉด ์ˆ˜๋™์œผ๋กœ ์ƒˆ๋กœ ๊ณ ์น˜๊ฑฐ๋‚˜ ํด๋งํ•  ํ•„์š” ์—†์ด ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์—ฐ๊ฒฐ๋œ ๋ชจ๋“  ํด๋ผ์ด์–ธํŠธ์— ์ž๋™์œผ๋กœ ํ‘ธ์‹œ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋ณต์žกํ•œ ์š”์ฒญ-์‘๋‹ต ์™•๋ณต์˜ ํ•„์š”์„ฑ์„ ์ œ๊ฑฐํ•˜๊ณ  ์šฐ์ˆ˜ํ•˜๊ณ  ๋ชฐ์ž…๋„ ๋†’์€ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์— ๊ธฐ์—ฌํ•ฉ๋‹ˆ๋‹ค.

๋ณด์•ˆ์€ ๋ชจ๋“  ์ตœ์‹  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ตœ์šฐ์„  ์ˆœ์œ„์ด๋ฉฐ Firestore๋„ ์˜ˆ์™ธ๋Š” ์•„๋‹™๋‹ˆ๋‹ค. ์ด๋Š” ๋ฐ์ดํ„ฐ ๋ณดํ˜ธ ๋ฐ ์—ญํ•  ๊ธฐ๋ฐ˜ ์•ก์„ธ์Šค ์ œ์–ด๋ฅผ ๋ณด์žฅํ•˜๋Š” ํฌ๊ด„์ ์ด๊ณ  ์‰ฝ๊ฒŒ ๊ตฌ์„ฑ ๊ฐ€๋Šฅํ•œ ๋ณด์•ˆ ๊ทœ์น™ ์„ธํŠธ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ทœ์น™์€ ๋ฌธ์„œ, ํ•„๋“œ ๋˜๋Š” ์ปฌ๋ ‰์…˜๊ณผ ๊ฐ™์€ ๋‹ค์–‘ํ•œ ์ˆ˜์ค€์—์„œ ์ ์šฉ๋˜์–ด ๋ฐ์ดํ„ฐ ์•ก์„ธ์Šค ๋ฐ ์กฐ์ž‘์„ ์„ธ๋ฐ€ํ•˜๊ฒŒ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ Firestore๋Š” Firebase ์ธ์ฆ๊ณผ ์™„์ „ํžˆ ํ†ตํ•ฉ๋˜์–ด ์›ํ™œํ•˜๊ณ  ์•ˆ์ „ํ•œ ๋‹ค์ค‘ ๊ณต๊ธ‰์ž ์ธ์ฆ ์†”๋ฃจ์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

AppMaster ๋ฐฑ์—”๋“œ, ์›น ๋ฐ ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‰ฝ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ฐ•๋ ฅํ•œ no-code ํ”Œ๋žซํผ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. AppMaster ์‚ฌ์šฉ์ž๋Š” Firestore์˜ ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜์—ฌ ๋ฐฑ์—”๋“œ ์ธํ”„๋ผ ๊ด€๋ฆฌ ์—†์ด๋„ ์ „ ์„ธ๊ณ„์ ์œผ๋กœ ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์‹ค์‹œ๊ฐ„ ๊ณ ์„ฑ๋Šฅ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์„ค๊ณ„, ๊ฐœ๋ฐœ, ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Firestore์˜ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง, ์‹ค์‹œ๊ฐ„ ๋™๊ธฐํ™”, ๋ณด์•ˆ ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ˜ AppMaster ํ†ตํ•ด ๊ณ ๊ฐ์€ ๋น„์šฉ ํšจ์œจ์ ์ผ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ 10๋ฐฐ ๋” ๋น ๋ฅด๊ณ  3๋ฐฐ ๋” ํšจ์œจ์ ์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Firestore์™€ AppMaster ํ†ตํ•ฉํ•˜๋ฉด Go(golang)๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฑ์—”๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์œ„ํ•œ ์†Œ์Šค ์ฝ”๋“œ์™€ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ Vue3 ํ”„๋ ˆ์ž„์›Œํฌ์™€ JavaScript/TypeScript๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒ์„ฑ๋˜๋Š” ๋ฐ˜๋ฉด, ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ Android์šฉ Kotlin ๋ฐ Jetpack Compose ์™€ iOS์šฉ SwiftUI ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” AppMaster ์„œ๋ฒ„ ๊ธฐ๋ฐ˜ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ ๊ตฌ์ถ•๋ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ์ผ๋ฐ˜ ๊ฐœ๋ฐœ์ž๋ผ๋„ ๋น„์ฆˆ๋‹ˆ์Šค์™€ ์‚ฌ์šฉ์ž์˜ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•˜๋Š” ์ตœ์ฒจ๋‹จ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค๊ณ  ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

AppMaster ์š”๊ตฌ ์‚ฌํ•ญ์ด ๋ณ€๊ฒฝ๋  ๋•Œ๋งˆ๋‹ค ์ฒ˜์Œ๋ถ€ํ„ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์›ํ™œํ•˜๊ฒŒ ์ƒ์„ฑํ•˜์—ฌ ๊ธฐ์ˆ ์  ๋ถ€์ฑ„๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๋™์‹œ์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์Šคํฌ๋ฆฝํŠธ, ์„œ๋ฒ„ endpoint ๋ฌธ์„œ(Swagger ๊ฐœ๋ฐฉํ˜• API ์‚ฌ์šฉ) ๋ฐ ์ƒˆ๋กœ์šด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ธํŠธ๋ฅผ 30์ดˆ ์ด๋‚ด์— ์ž๋™ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. AppMaster ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๋ชจ๋“  PostgreSQL ํ˜ธํ™˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด ๊ด‘๋ฒ”์œ„ํ•œ ๊ธฐ์—… ๋ฐ ๊ณ ๋ถ€ํ•˜ ์‚ฌ์šฉ ์‚ฌ๋ก€์— ๋†€๋ผ์šด ํ™•์žฅ์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๊ฒฐ๋ก ์ ์œผ๋กœ Firestore๋Š” ์œ ์—ฐํ•˜๊ณ  ์•ˆ์ „ํ•˜๋ฉฐ ์„ฑ๋Šฅ์ด ๋›ฐ์–ด๋‚œ NoSQL ํด๋ผ์šฐ๋“œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์†”๋ฃจ์…˜์„ ์ œ๊ณตํ•˜๋ฏ€๋กœ ์„œ๋ฒ„๋ฆฌ์Šค ์ปดํ“จํŒ… ํ™˜๊ฒฝ์—์„œ ๋งค์šฐ ๊ท€์ค‘ํ•œ ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค. AppMaster ์™€ ๊ฐ™์€ ๊ฐ•๋ ฅํ•œ no-code ํ”Œ๋žซํผ๊ณผ ํ†ตํ•ฉ๋˜๋ฉด Firestore๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ํƒ์›”ํ•œ ์‹ค์‹œ๊ฐ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‰ฝ๊ฒŒ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•˜์—ฌ ๋” ๋น ๋ฅด๊ณ  ๋น„์šฉ ํšจ์œจ์ ์ธ ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค๋Š” ๋ฌผ๋ก  ๊ธฐ์ˆ ์  ๋ถ€๋‹ด ์—†์ด ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๊ณ  ๋ฏธ๋ž˜ ์ง€ํ–ฅ์ ์ธ ์†”๋ฃจ์…˜์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค. ๋นš.