๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์นดํ…Œ๊ณ ๋ฆฌ ์—†์Œ

ํŒŒ์ด์–ด๋ฒ ์ด์Šค(Firebase) - NoSQL,Collection,Document

by mingzoo 2021. 6. 24.

์ด๋ฒˆ์— ํ”„๋กœ์ ํŠธ๋ฅผ ์ •๋ฆฌํ•˜๋ฉด์„œ ํŒŒ์ด์–ด๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ–ˆ๋˜ ํ”„๋กœ์ ํŠธ๋ฅผ ๋‹ค์‹œ ๋ณด๊ฒŒ ๋˜์—ˆ๋‹ค.

์‚ฌ์šฉํ•ด๋ดค์ง€๋งŒ ์ •ํ™•ํžˆ ๊ณต๋ถ€ํ•ด๋ณด๊ณ  ๋„˜์–ด๊ฐ€์•ผ๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐ์ด ๋“ค์–ด์„œ ๋‹ค์‹œ ์ •๋ฆฌ๋ฅผ ํ•ด๋ดค๋‹ค.

ํŒŒ์ด์–ด๋ฒ ์ด์Šค์—์„œ ๋‚ด๊ฐ€ ์‚ฌ์šฉํ–ˆ๋˜ ๊ธฐ๋Šฅ์€ Firebase Database(DB)์™€ Firebase Authentication(Auth)์ด๋‹ค.

 

Firebase Auth๋Š” ์ด๋ฉ”์ผ, ๊ตฌ๊ธ€ ๋“ฑ ๋‹ค์–‘ํ•œ sns๋ฅผ ์ด์šฉํ•œ ๋กœ๊ทธ์ธ ์ธ์ฆ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๊ณ  ์žˆ๋‹ค. ์ด ๋ถ€๋ถ„์€ ์ž์‹ ์ด ๊ตฌํ˜„ํ•˜๋ ค๊ณ ํ•˜๋Š” ํ”„๋กœ์ ํŠธ์— ๋”ฐ๋ผ ํ—ˆ์šฉํ•ด์ฃผ์–ด ์‚ฌ์šฉํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

์ด ์ ์€ ๊ทธ๋‹ค์ง€ ์–ด๋ ต์ง€ ์•Š์•˜๋‹ค. ํ•˜์ง€๋งŒ, Firebase DB์— ์ ‘๊ทผํ•ด์„œ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๊ณ  ๊บผ๋‚ด์„œ ์“ฐ๋Š” ๋ถ€๋ถ„์— ์žˆ์–ด ์ฒ˜์Œ์— ์–ด๋ ค์›€์„ ๋Š๊ผˆ์—ˆ๋‹ค. ๋‚˜์—๊ฒ Collection๊ณผ Document์— ๋Œ€ํ•œ ๊ฐœ๋…์ด ๋’ค์ฃฝ๋ฐ•์ฃฝ ๋‹ค๊ฐ€์™€์„œ ์–ด๋ ค์› ์—ˆ๋Š”๋ฐ ๊ณต๋ถ€ํ•ด๋ณด๊ณ  ์ง์ ‘ ๊ทธ๋ ค๊ฐ€๋ฉฐ ํ‘œํ˜„์„ ํ•ด๋ณด๋‹ˆ ์ „๋ณด๋‹ค๋Š” ์ง์ ‘์ ์œผ๋กœ ์™€๋‹ฟ์•˜๋˜ ๊ฒƒ ๊ฐ™๋‹ค.

 

Collection & Document?

๊ณต์‹๋ฌธ์„œ ์ฐธ์กฐ

์ด ๊ทธ๋ฆผ์ด ํ•œ๋ฒˆ์— ์ดํ•ด๋ฅผ ํ•˜๋Š”๋ฐ ๋„์›€์„ ์คฌ๋‹ค.

Firebase ๊ณต์‹๋ฌธ์„œ์—๋Š” ์œ„์™€๊ฐ™์ด ์„ค๋ช…์ด ๋˜์–ด์žˆ๋‹ค.

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

 

document(๋ฌธ์„œ) : Cloud Firestore์˜ ์ €์žฅ์†Œ ๋‹จ์œ„, ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ์˜ ๋‹จ์œ„

map : ๋ฌธ์„œ์˜ ๋ณต์žกํ•œ ์ค‘์ฒฉ ๊ฐ์ฒด

collection(์ปฌ๋ ‰์…˜) : ๋ฌธ์„œ์˜ ์ปจํ…Œ์ด๋„ˆ(๋ฌธ์„œ๋ฅผ ๋ชจ์•„๋‘” ๊ฒƒ), ๋ฌธ์„œ๊ฐ€ ์ €์žฅ๋˜๋Š” ๊ณณ

 

๋‚˜๋Š” ์ฑ„ํŒ…๋ฐฉ์„ ๋งŒ๋“œ๋Š” ํ”„๋กœ์ ํŠธ์— ํŒŒ์ด์–ด๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ–ˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ณ„์ธต์ ์ธ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ–ˆ์–ด์•ผํ–ˆ๋‹ค.

๊ณ„์ธต์  ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ๋ณด๋‹ˆ Cloud Firestore์˜ ๋ฌธ์„œ๋Š” ๊ฐ€๋ฒผ์›Œ์•ผ ํ•˜๋Š”๋ฐ, ์ฑ„ํŒ…๋ฐฉ์— ๋งค์šฐ ๋งŽ์€ ๋ฉ”์‹œ์ง€๊ฐ€ ํฌํ•จ๋  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ•˜์œ„ ์ปฌ๋ ‰์…˜์„ ์ถ”๊ฐ€๋กœ ๋งŒ๋“ค์–ด ์‚ฌ์šฉํ•˜์˜€๋‹ค.

์•„๋ž˜์™€ ๊ฐ™์ด ํ‘œํ˜„์„ ํ•ด์„œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑ์„ ํ–ˆ์—ˆ๋‹ค.

 

  • Room (Collection)
    • Room (Document)
      • messages (Collection)
        • message1 (Document)
        • message2 (Document)
        • ...
      • chat participants (Collection)
        • participant1 (Document)
        • participant2 (Document)

 

NoSQL?

๊ณต์‹๋ฌธ์„œ์—๋Š” ์ด๋ ‡๊ฒŒ ๋‚˜์™€์žˆ๋‹ค.

Cloud Firestore๋Š” NoSQL ๋ฌธ์„œ ์ค‘์‹ฌ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ž…๋‹ˆ๋‹ค. SQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ๋‹ฌ๋ฆฌ ํ…Œ์ด๋ธ”์ด๋‚˜ ํ–‰์ด ์—†์œผ๋ฉฐ, ์ปฌ๋ ‰์…˜์œผ๋กœ ์ •๋ฆฌ๋˜๋Š” ๋ฌธ์„œ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด, NoSQL์€ ์ •ํ™•ํžˆ ๋ฌด์—‡์ผ๊นŒ?

'Database Query SQL์ด ์—†๋‹ค'๋Š” ๋ง์ด๋‹ค. 

์Šคํ‚ค๋งˆ๊ฐ€ ์—†๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (์Šคํ‚ค๋งˆ : ํ…Œ์ด๋ธ”(Table), ์ปฌ๋Ÿผ(Column)๊ณผ ๊ฐ™์€ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์ŠคํŠธ๋Ÿญ์ณ)

Relational DB์˜ ๊ฒฝ์šฐ, ๋ฐ์ดํ„ฐ ํ…Œ์ด๋ธ”์— ์ŠคํŠธ๋Ÿญ์ณ๊ฐ€ ์žˆ๊ณ , ์ด ์ŠคํŠธ๋Ÿญ์ณ์— ๋ณ€ํ™”๋ฅผ ์ค„๋•Œ (๋งˆ์ด๊ทธ๋ ˆ์ด์…˜) ๋ชจ๋“  ์—”ํŠธ๋ฆฌ๋“ค์„ ๋‹ค ์—…๋ฐ์ดํŠธ ํ•ด์ฃผ๊ฒŒ ๋œ๋‹ค. ์—…๋ฐ์ดํŠธ๋ฅผ ํ”ผํ•  ์ˆ˜ ์—†๋Š” ๋”ฐ๋ผ์„œ ์ˆ˜์–ต๊ฐœ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ๋Š” ์ด์ œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํ•˜๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋„ ๋ฒ…์ฐจ๋Š” ํƒ€์ด๋ฐ์ด ์˜ค๊ฒŒ ๋˜๋Š”๋ฐ ์ด์— NoSQL์€ DB๊ตฌ์กฐ๊ฐ€ flexibleํ•œ ๊ฒฝ์šฐ์— ์žฅ์ ์ด ๋ฐœํœ˜๋œ๋‹ค. 

Flexibleํ•˜๋‹ค = ์นผ๋Ÿผ์„ ๋”ํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•˜๋Š”๋ฐ ์ œํ•œ์ด ์—†๋‹ค.๋”ฐ๋ผ์„œ, ํ™•์žฅ์„ฑ์ด ์šฉ์ดํ•ด์ง€๊ฒŒ ๋งŒ๋“ค์–ด์ค€๋‹ค๊ณ  ๋ณด์•˜๋‹ค.

 

๋‹ค์Œ ํฌ์ŠคํŠธ๋กœ๋Š” ํŒŒ์ด์–ด๋ฒ ์ด์Šค๋ฅผ ์ง์ ‘์ ์œผ๋กœ ๋ฆฌ์•กํŠธ์— ์‚ฌ์šฉํ–ˆ๋˜ ์ฝ”๋“œ๋“ค์„ ์ •๋ฆฌํ•˜๋ฉด์„œ ์ปฌ๋ ‰์…˜์— ๋ฌธ์„œ๋ฅผ ๋”ํ•˜๋Š” ๋“ฑ Firebase์— ๋„ฃ์–ด์ง„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ ์–ด๋ด์•ผ๊ฒ ๋‹ค!

728x90