๊ธฐ์ ์ ์ธ ์ด์ผ๊ธฐ๋ฅผ ํ๋ ํ๊ฒ ์ต๋๋ค.
๋ช ๋
์ , ์ ๋ ํ์
๊ธฐ๋ฅ์ด ๋ด์ฅ๋ ์ ํ๋ฆฌ์ผ์ด์
์ ๊ฐ๋ฐํ๊ณ ์์์ต๋๋ค. ์ด๋ ์ด๊ธฐ React์ CouchDB์ ์ ์ฌ๋ ฅ์ ์ต๋ํ ํ์ฉํ ์ฌ์ฉ์ ์นํ์ ์ธ ์คํ ์คํ์ด์์ต๋๋ค. JSON์ ํตํด ์ค์๊ฐ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋๊ธฐํํ์ต๋๋ค.
์ด ๊ธฐ์ ์ ์ ์ฌ ๊ณ ๊ฐ์๊ฒ ํ๋งคํ๋ ค๊ณ ์๋ํ๋ ๋์ ์ฐ๋ฆฌ๋ ์์์น ๋ชปํ ์ฅ์ ๋ฌผ์ ์ง๋ฉดํ์ต๋๋ค. ๋ฐ๋ชจ ๋น๋์ค์์ ์ฐ๋ฆฌ์ ๊ธฐ์ ์ ํ๋ฅญํด ๋ณด์๊ณ ์๋ํ์ผ๋ฉฐ ์๋ฌด๋ฐ ๋ฌธ์ ๋ ์์์ต๋๋ค. ์์์ ๊ทธ๊ฒ์ด ์ด๋ป๊ฒ ์๋ํ๋์ง ์ ํํ๊ฒ ๋ณด์ฌ์ฃผ์๊ณ ์๋ฌด๊ฒ๋ ๋ชจ๋ฐฉํ์ง ์์์ต๋๋ค. ์ฐ๋ฆฌ๋ ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ๊ธฐ ์ํ ํ์ค์ ์ธ ์๋๋ฆฌ์ค๋ฅผ ์๊ฐํด๋ด๊ณ ์ฝ๋ฉํ์ต๋๋ค.
์ฌ์ค ์ด๊ฒ ๋ฌธ์ ๊ฐ ๋๋ค. ์ฐ๋ฆฌ์ ๋ฐ๋ชจ๋ ๋ค๋ฅธ ์ฌ๋๋ค์ด ์ ํ๋ฆฌ์ผ์ด์
์ ์๋ฎฌ๋ ์ด์
ํ ๋ฐฉ์๊ณผ ์ ํํ ๋์ผํ๊ฒ ์๋ํ์ต๋๋ค. ํนํ ๋์ฉ๋ ๋ฏธ๋์ด ํ์ผ์ด๋ผ ํ๋๋ผ๋ ์ ๋ณด๊ฐ A์์ B๋ก ์ฆ์ ์ ์ก๋์์ต๋๋ค. ๋ก๊ทธ์ธํ ํ ๊ฐ ์ฌ์ฉ์๋ ์๋ก์ด ํญ๋ชฉ์ ๋ณด์์ต๋๋ค. ์ด ์ ํ๋ฆฌ์ผ์ด์
์ ์ฌ์ฉํ๋ฉด ๋ง์ ์ด๋๊ฐ์์ ์ธํฐ๋ท ์ฐ๊ฒฐ์ด ์ค๋จ๋๋๋ผ๋ ์ฌ๋ฌ ์ฌ์ฉ์๊ฐ ๋์ผํ ํ๋ก์ ํธ์์ ๋ช
ํํ๊ฒ ํจ๊ป ์์
ํ ์ ์์ต๋๋ค. ์ด๋ After Effects์ ๋ชจ๋ ์ ํ ๋น๋์ค ์ปท์ ์์์ ์ผ๋ก ์์๋์ด ์์ต๋๋ค.
๋ชจ๋๊ฐ ์๋ก ๊ณ ์นจ ๋ฒํผ์ ์ฉ๋๋ฅผ ์๊ณ ์์์ง๋ง, ์ฐ๋ฆฌ์๊ฒ ๋น๋ํ๋๋ก ์์ฒญํ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ผ๋ฐ์ ์ผ๋ก ์์ฒด์ ์ธ ์ ํ ์ฌํญ์ ๋ฐ๋ฅธ๋ค๋ ์ฌ์ค์ ์ค์ ๋ก ์ดํดํ ์ฌ๋์ ์๋ฌด๋ ์์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ ์ด์ ํ์ํ์ง ์๋ค๋ฉด ์ฌ์ฉ์ ๊ฒฝํ์ ์์ ํ ๋ฌ๋ผ์ง ๊ฒ์ ๋๋ค. ๊ทธ๋ค์ ๋ํํ๋ ์ฌ๋๋ค์๊ฒ ๋ฉ๋ชจ๋ฅผ ๋จ๊ฒจ์ "์ฑํ "ํ โโ์ ์๋ค๋ ์ ์ ๋๋ถ๋ถ ์์์ฐจ๋ ธ๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ด ์๋ฅผ ๋ค์ด Slack๊ณผ ์ด๋ป๊ฒ ๋ค๋ฅธ์ง ๊ถ๊ธํดํ์ต๋๋ค. ํด!
์ผ์์ ์ธ ๋๊ธฐํ ๋์์ธ
์ํํธ์จ์ด ๊ฐ๋ฐ ๊ฒฝํ์ด ์๋ค๋ฉด ๋๋ถ๋ถ์ ์ฌ๋๋ค์ด ์ธํฐํ์ด์ค ๊ทธ๋ฆผ๋ง ๋ณด๊ณ ์ธํฐํ์ด์ค์ ์ํธ ์์ฉํ ๋ ์ด๋ค ์์
์ ์ํํ ์ง ์ดํดํ ์ ์๋ค๋ ์ฌ์ค์ ๊ธฐ์ตํ๋ ๊ฒ์ด ๋งค์ฐ ๊ธด์ฅ๋ ๊ฒ์
๋๋ค. ํ๋ก๊ทธ๋จ ์์ฒด ๋ด๋ถ์์ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๋์ง๋ ๋งํ ๊ฒ๋ ์์ต๋๋ค. ์ง์ ์ ์ผ์ด๋๋ ์ผ์ ๋์ฒด๋ก ์ผ์ด๋ ์ ์๋ ์ผ๊ณผ ์ผ์ด๋์๋ ์๋๋ ์ผ์ ์๋ ๊ฒฐ๊ณผ์
๋๋ค. ์ด๋ฅผ ์ํด์๋
์ด์ ๋ํ ์ ํ์ ์ธ ์๋ ์ฌ์ฉ์๊ฐ spinner.gif, ์์ ์ด ์ธ์ ์๋ฃ๋ ์ง ๊ถ๊ธํฉ๋๋ค. ๊ฐ๋ฐ์๋ ํ๋ก์ธ์ค๊ฐ ์ค๋จ๋์์ ์ ์์ผ๋ฉฐ gif๊ฐ ํ๋ฉด์์ ์ ๋ ์ฌ๋ผ์ง์ง ์์ ๊ฒ์์ ๊นจ๋ฌ์์ ๊ฒ์ ๋๋ค. ์ด ์ ๋๋ฉ์ด์ ์ ์์ ์คํ์ ์๋ฎฌ๋ ์ด์ ํ์ง๋ง ์์ ์ํ์๋ ๊ด๋ จ์ด ์์ต๋๋ค. ์ด๋ฌํ ๊ฒฝ์ฐ ์ผ๋ถ ๊ธฐ์ ์ ๋ฌธ๊ฐ๋ ์ฌ์ฉ์ ํผ๋์ ์ ๋์ ๋๋ผ ๋์ ๊ตด๋ฆฌ๊ณค ํฉ๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๋ค ์ค ์ผ๋ง๋ ๋ง์ ์ฌ๋๋ค์ด ํ์ ํ๋ ์๊ณ๋ฅผ ๊ฐ๋ฆฌํค๋ฉฐ ๊ทธ๊ฒ์ด ์ค์ ๋ก ์ ์ง๋์ด ์๋ค๊ณ ๋งํ๋์ง ์ฃผ๋ชฉํ์ญ์์ค.
์ด๊ฒ์ด ์ค์๊ฐ ๊ฐ์น์ ๋ณธ์ง์
๋๋ค. ์์ฆ ์ค์๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์์ง ๊ฑฐ์ ์ฌ์ฉ๋์ง ์์ผ๋ฉฐ ๋ง์ ์ฌ๋๋ค์ด ์ด๋ฅผ ์์ฌ์ค๋ฝ๊ฒ ๋ณด๊ณ ์์ต๋๋ค. ์ด๋ฌํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋๋ถ๋ถ์ NoSQL ์คํ์ผ์ ํฌ๊ฒ ์์กดํ๊ณ ์๊ธฐ ๋๋ฌธ์ ์ผ๋ฐ์ ์ผ๋ก ๊ฐ์ฅ ์ ์ํ์ง๋ Mongo ๊ธฐ๋ฐ ์๋ฃจ์
์ ์ฌ์ฉํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋์๊ฒ ์ด๊ฒ์ CouchDB๋ก ํธ์ํ๊ฒ ์์
ํ๋ ๊ฒ๋ฟ๋ง ์๋๋ผ ์ผ๋ถ ๊ด๋ฃ๋ง์ด ๋ฐ์ดํฐ๋ก ์ฑ์ธ ์ ์๋ ๊ตฌ์กฐ๋ฅผ ์ค๊ณํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ฐ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ์๊ฐ์ ๋ ์ ํ์ฉํ๊ณ ์๋ ๊ฒ ๊ฐ์์.
ํ์ง๋ง ์ด ๊ฒ์๋ฌผ์ ์ค์ ์ฃผ์ ๋ ์ ๊ฐ ์ค๋ ์ฌ์ฉํ๊ณ ์๋ ๊ฒ์ ๋๋ค. ์ ํ์ ์ํ ๊ฒ์ด ์๋๋ผ ๋ฌด๊ด์ฌํ๊ณ ๋งน๋ชฉ์ ์ผ๋ก ์ ์ฉ๋ ๊ธฐ์ ์ ์ฑ ๋๋ฌธ์ ๋๋ค. ๋ฐ๋ผ์ ์ ๋ ๋ฐ์ ํ๊ฒ ๊ด๋ จ๋ ๋ ๊ฐ์ง Google ์ค์๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ํ์ ๋ํ ์์ ํ ๊ณต์ ํ๊ณ ํธ๊ฒฌ ์๋ ๋น๊ต๋ฅผ ์ ๊ณตํ๊ฒ ์ต๋๋ค.
๋ ๋ค ์ด๋ฆ์ Fire๋ผ๋ ๋จ์ด๊ฐ ์์ต๋๋ค. ๋ด๊ฐ ์ข์ํ๊ฒ ๊ธฐ์ตํ๋ ํ ๊ฐ์ง. ๋ ๋ฒ์งธ๋ ๋ค๋ฅธ ์ ํ์ ๋ถ์
๋๋ค. ๋๋ ๊ทธ๋ค์ ์ด๋ฆ์ ๋งํ๊ธฐ๋ฅผ ์๋๋ฅด์ง ์์ต๋๋ค. ์ผ๋จ ๊ทธ๋ ๊ฒ ํ๋ฉด ์ฐ๋ฆฌ๋ ์ฒซ ๋ฒ์งธ ํฐ ๋ฌธ์ ์ธ ์ด๋ฆ์ ์ง๋ฉดํ๊ฒ ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์
๋๋ค.
์ฒซ ๋ฒ์งธ๋ Firebase ์ค์๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค, ๊ทธ๋ฆฌ๊ณ ๋ ๋ฒ์งธ- Firebase ํด๋ผ์ฐ๋ Firestore. ๋ ๋ค ํ์ฌ ์ ํ์ด์์ Firebase ์ ํ๊ตฐ Google. ํด๋น API๋ ๊ฐ๊ฐ ํธ์ถ๋ฉ๋๋ค. firebase.database(โฆ)
ะธ firebase.firestore(โฆ)
.
์ด๋ฐ ์ผ์ด ์ผ์ด๋ ์ด์ ๋ ์ค์๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค - ๊ทธ๋ฅ ์๋ณธ์ด์์ ์คํฌ ๊ธฐ์ง 2014๋ Google์์ ๊ตฌ๋งคํ๊ธฐ ์ ์ ๋๋ค. ๊ทธ๋ฐ ๋ค์ Google์ ๋ณ๋ ฌ ์ ํ์ผ๋ก ๋ง๋ค๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ๋ณต์ฌ ๋น ๋ฐ์ดํฐ ํ์ฌ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ Firebase๋ฅผ ํด๋ผ์ฐ๋์ ํจ๊ป Firestore๋ผ๊ณ ๋ถ๋ ์ต๋๋ค. ์์ง ํผ๋ํ์ง ์์ผ์ จ์ผ๋ฉด ์ข๊ฒ ์ต๋๋ค. ์์ง๋ ํผ๋์ค๋ฝ๋ค๋ฉด ๊ฑฑ์ ํ์ง ๋ง์ธ์. ์ ๋ ์ด ๋ถ๋ถ์ XNUMX๋ฒ์ด๋ ๋ค์ ์ผ์ต๋๋ค.
ํ์ํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์คํฌ ๊ธฐ์ง Firebase ์ง๋ฌธ์์ ์๋ฐฉ์ Firebase์ ๋ํ ์ง๋ฌธ์์ ์ ์ด๋ ๋ช ๋ ์ Stack Overflow์ ๋ํ ์ดํด๋ฅผ ๋๊ธฐ ์ํด.
์ต์ ์ ์ํํธ์จ์ด ๋ช ๋ช ๊ฒฝํ์ ๋ํ ์์ด ์๋ค๋ฉด ์ด๊ฒ์ ๋ถ๋ช ํ ๊ฒฝ์์ ์ค ํ๋์ผ ๊ฒ์ ๋๋ค. ์ด๋ฌํ ์ด๋ฆ ์ฌ์ด์ ํด๋ฐ ๊ฑฐ๋ฆฌ๊ฐ ๋๋ฌด ์์์ ๋จธ๋ฆฌ๊ฐ ๋ค๋ฅธ ์ด๋ฆ์ ์๊ฐํ๋ ๋์ ์๊ฐ๋ฝ์ผ๋ก ํ ์ด๋ฆ์ ์ ๋ ฅํ๋ ์๋ จ๋ ์์ง๋์ด๋ผ๋ ํผ๋์ ๊ฒช์ต๋๋ค. ์ด๊ฒ์ ๋น์ฐธํ๊ฒ ์คํจํ๋ ์ ์์ ๊ณํ์ ๋๋ค. ๊ทธ๋ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ถ์ด ๋ถ์ ๊ฒ์ด๋ผ๋ ์์ธ์ ์ฑ์ทจํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋๋ ์ ํ ๋๋ด์ด ์๋๋๋ค. ์ด ๋ช ๋ช ๋ฒ์ ๊ณ ์ํ ์ฌ๋์ ํผ์ ๋๊ณผ ๋๋ฌผ์ ํ๋ ธ๋ค.
Pyrrhic victory
Firestore๊ฐ ๊ต์ฒด Firebase๋ ์ฐจ์ธ๋ ์ ํ์ด์ง๋ง ์ด๋ ์คํด์ ์์ง๊ฐ ์์ต๋๋ค. Firestore๋ Firebase๋ฅผ ์ ์ ํ๊ฒ ๋์ฒดํ ์ ์๋ค๊ณ ๋ณด์ฅ๋์ง ์์ต๋๋ค. ๋๊ตฐ๊ฐ๊ฐ ํฅ๋ฏธ๋ก์ด ๋ชจ๋ ๊ฒ์ ์๋ผ๋ด๊ณ ๋๋จธ์ง ๋๋ถ๋ถ์ ๋ค์ํ ๋ฐฉ์์ผ๋ก ํผ๋ํ ๊ฒ ๊ฐ์ต๋๋ค.
๊ทธ๋ฌ๋ ๋ ์ ํ์ ์ ๊น ์ดํด๋ณด๋ฉด ํผ๋์ค๋ฌ์ธ ์ ์์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๋์ผํ API๋ฅผ ํตํด, ์ฌ์ง์ด ๋์ผํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ์ ์์๋ ๋์ผํ ์์ ์ ์ํํ๋ ๊ฒ์ฒ๋ผ ๋ณด์ ๋๋ค. ์ฐจ์ด์ ์ ๋ฏธ๋ฌํ๋ฉฐ ๊ด๋ฒ์ํ ๋ฌธ์์ ๋ํ ์ ์คํ ๋น๊ต ์ฐ๊ตฌ๋ฅผ ํตํด์๋ง ๋๋ฌ๋ฉ๋๋ค. ๋๋ Firestore์์ ์๋ํ๋๋ก Firebase์์ ์๋ฒฝํ๊ฒ ์๋ํ๋ ์ฝ๋๋ฅผ ํฌํ ํ๋ ค๋ ๊ฒฝ์ฐ์ ๋๋ค. ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ์ค์๊ฐ์ผ๋ก ๋ง์ฐ์ค๋ฅผ ๋๋๊ทธ ์ค ๋๋กญํ๋ ค๊ณ ํ๋ฉด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธํฐํ์ด์ค๊ฐ ์ผ์ง๋ค๋ ๊ฒ์ ์๊ฒ ๋ฉ๋๋ค. ๋ฐ๋ณตํฉ๋๋ค. ๋๋ด์ด ์๋๋๋ค.
Firebase ํด๋ผ์ด์ธํธ๋ ๋ณ๊ฒฝ ์ฌํญ์ ๋ฒํผ๋งํ๊ณ ๋ง์ง๋ง ์ฐ๊ธฐ ์์ ์ ์ฐ์ ์์๋ฅผ ๋ถ์ฌํ๋ ์ ๋ฐ์ดํธ๋ฅผ ์๋์ผ๋ก ์ฌ์๋ํ๋ค๋ ์ ์์ ์ ์คํฉ๋๋ค. ๊ทธ๋ฌ๋ Firestore์๋ ๋ฌธ์๋น ์ฌ์ฉ์๋น ์ด๋น 1ํ์ ์ฐ๊ธฐ ์์ ์ ํ์ด ์์ผ๋ฉฐ ์ด ์ ํ์ ์๋ฒ์ ์ํด ์ ์ฉ๋ฉ๋๋ค. ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์์ ํ ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๋ ค๊ณ ํ ๋์๋ ์ด๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ์ฐพ๊ณ ์ ๋ฐ์ดํธ ์๋ ์ ํ๊ธฐ๋ฅผ ๊ตฌํํ๋ ๊ฒ์ ์ฌ์ฉ์์๊ฒ ๋ฌ๋ ค ์์ต๋๋ค. ์ฆ, Firestore๋ API๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ฒ๋ผ ๊ฐ์ฅํ๋ ์ค์๊ฐ ํด๋ผ์ด์ธํธ๊ฐ ์๋ ์ค์๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋๋ค.
์ฌ๊ธฐ์ ์ฐ๋ฆฌ๋ Firestore์ ์กด์ฌ ์ด์ ์ ๋ํ ์ฒซ ๋ฒ์งธ ์งํ๋ฅผ ๋ณด๊ธฐ ์์ํฉ๋๋ค. ๋ด ์๊ฐ์ด ํ๋ ธ์ ์๋ ์์ง๋ง, Google ๊ฒฝ์์ง์ ๋๊ตฐ๊ฐ๊ฐ Firebase๋ฅผ ๊ตฌ๋งคํ ํ ๋ณด๊ณ ๋จ์ํ "์๋์, ๋ง์์ฌ, ์๋์ฃ . "๋ผ๊ณ ๋งํ ๊ฒ ๊ฐ์ต๋๋ค. ์ด๊ฒ์ ์ฉ๋ฉ๋ ์ ์์ต๋๋ค. ๋ด ์ง๋ํ์ ์์ง ์์ ๋ฟ์ด์ผ."
๊ทธ๋ ์์ ์ ๋ฐฉ์์ ๋ํ๋ ๋ค์๊ณผ ๊ฐ์ด ์ ์ธํ์ต๋๋ค.
โํฐ JSON ๋ฌธ์ ํ๋์? ์๋์. ๋ฐ์ดํฐ๋ฅผ ๊ฐ๊ฐ์ ํฌ๊ธฐ๊ฐ 1MB ์ดํ์ธ ๋ณ๋์ ๋ฌธ์๋ก ๋ถํ ํ๊ฒ ๋ฉ๋๋ค.โ
๊ทธ๋ฌํ ์ ํ์ ์ถฉ๋ถํ ๋๊ธฐ๊ฐ ๋ถ์ฌ๋ ์ฌ์ฉ์ ๊ธฐ๋ฐ๊ณผ์ ์ฒซ ๋ง๋จ์์ ์ด์๋จ์ง ๋ชปํ ๊ฒ ๊ฐ์ต๋๋ค. ๋น์ ์ ๊ทธ๊ฒ์ด๋ผ๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ง์ฅ์์๋ XNUMX๋ง ๊ฐ ์ด์์ ํ๋ ์ ํ ์ด์ ์ด ์๋๋ฐ ์ด๋ ์์ ํ ์ ์์ ์ธ ์์ค์ ๋๋ค.
์ด๋ฌํ ์ ํ์ผ๋ก ์ธํด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์๋ ํ๋์ "๋ฌธ์"๋ ์ฌ์ฉ์๊ฐ ๋ฌธ์๋ผ๊ณ ๋ถ๋ฅด๋ ๊ฐ์ฒด์ ์ ์ฌํ์ง ์๋ค๋ ์ฌ์ค์ ๋ฐ์๋ค์ฌ์ผ ํฉ๋๋ค.
"๋ค๋ฅธ ์์๋ฅผ ์ฌ๊ท์ ์ผ๋ก ํฌํจํ ์ ์๋ ๋ฐฐ์ด์ ๋ฐฐ์ด? ์๋์. ๋ฐฐ์ด์๋ ์ ์ด ์๋ํ ๋๋ก ๊ณ ์ ๊ธธ์ด์ ๊ฐ์ฒด๋ ์ซ์๋ง ํฌํจ๋ ๊ฒ์ ๋๋ค."
๋ฐ๋ผ์ GeoJSON์ Firestore์ ๋ฃ์ผ๋ ค๋ ๊ฒฝ์ฐ ์ด๊ฒ์ด ๋ถ๊ฐ๋ฅํ๋ค๋ ๊ฒ์ ์๊ฒ ๋ ๊ฒ์ ๋๋ค. 64์ฐจ์์ ์ด์ง ์์ ๊ฒ์ ํ์ฉ๋์ง ์์ต๋๋ค. JSON ๋ด์ BaseXNUMX ๋ฐ/๋๋ JSON์ด ๋ง์์ ๋์ จ์ผ๋ฉด ์ข๊ฒ ์ต๋๋ค.
โHTTP, ๋ช ๋ น์ค ๋๊ตฌ ๋๋ ๊ด๋ฆฌ ํจ๋์ ํตํด JSON ๊ฐ์ ธ์ค๊ธฐ ๋ฐ ๋ด๋ณด๋ด๊ธฐ? ์๋์. Google Cloud Storage๋ก๋ง ๋ฐ์ดํฐ๋ฅผ ๋ด๋ณด๋ด๊ณ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค. ์ง๊ธ์ ๊ทธ๋ ๊ฒ ๋ถ๋ฅด๋ ๊ฒ ๊ฐ์์. ๊ทธ๋ฆฌ๊ณ ์ ๊ฐ "๋น์ "์ด๋ผ๊ณ ๋งํ ๋๋ ํ๋ก์ ํธ ์์ ์ ์๊ฒฉ์ ๊ฐ์ถ ์ฌ๋๋ค์๊ฒ๋ง ๋งํ๋ ๊ฒ์ ๋๋ค. ๋ค๋ฅธ ์ฌ๋๋ค๋ ๊ฐ์ ํฐ์ผ์ ๋ง๋ค ์ ์์ด์."
๋ณด์๋ค์ํผ FireBase ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์ค๋ช
ํ๊ธฐ ์ฝ์ต๋๋ค. ์ฌ๊ธฐ์๋ JSON ํค๋ฅผ URL ๊ฒฝ๋ก์ ์ฐ๊ฒฐํ๋ ํ๋์ ๊ฑฐ๋ํ JSON ๋ฌธ์๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. ์ผ๋ก ์ด๋ค๋ฉด HTTP PUT
ะฒ /
FireBase๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
{
"hello": "world"
}
๊ทธ GET /hello
๋์์ฌ ๊ฒ์ด๋ค "world"
. ๊ธฐ๋ณธ์ ์ผ๋ก ์์ํ ๋๋ก ์ ํํ๊ฒ ์๋ํฉ๋๋ค. FireBase ๊ฐ์ฒด ์ปฌ๋ ์
/my-collection/:id
JSON ์ฌ์ ๊ณผ ๋์ผ {"my-collection": {...}}
๋ฃจํธ์์ ๊ทธ ๋ด์ฉ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. /my-collection
:
{
"id1": {...object},
"id2": {...object},
"id3": {...object},
// ...
}
์ด๋ ๊ฐ ์ฝ์ ๋ฌผ์ ์ถฉ๋ ์๋ ID๊ฐ ์๊ณ ์์คํ ์ ํ์ค ์๋ฃจ์ ์ด ์๋ ๊ฒฝ์ฐ ์ ๋๋ก ์๋ํฉ๋๋ค.
์ฆ, ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ 100% JSON(*)๊ณผ ํธํ๋๋ฉฐ CouchDB์ ๊ฐ์ HTTP์ ์ ์๋ํฉ๋๋ค. ๊ทธ๋ฌ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์น์์ผ, ์ธ์ฆ ๋ฐ ๊ตฌ๋ ์ ์ถ์ํํ๋ ์ค์๊ฐ API๋ฅผ ํตํด ์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๊ด๋ฆฌ์ ํจ๋์๋ ์ค์๊ฐ ํธ์ง๊ณผ JSON ๊ฐ์ ธ์ค๊ธฐ/๋ด๋ณด๋ด๊ธฐ๊ฐ ๋ชจ๋ ๊ฐ๋ฅํ ๋ ๊ฐ์ง ๊ธฐ๋ฅ์ด ๋ชจ๋ ์์ต๋๋ค. ์ฝ๋์์ ๋์ผํ ์์ ์ ์ํํ๋ ๊ฒฝ์ฐ ํจ์น ๋ฐ ์ฐจ์ด์ JSON์ด ์ง์ ์ํ๋ฅผ ์ฒ๋ฆฌํ๋ ์ผ์์ ์ธ ์์ ์ 90%๋ฅผ ํด๊ฒฐํ๋ค๋ ์ฌ์ค์ ์๊ฒ ๋๋ฉด ์ผ๋ง๋ ๋ง์ ํน์ ์ฝ๋๊ฐ ๋ญ๋น๋๋์ง ๋๋ผ๊ฒ ๋ ๊ฒ์ ๋๋ค.
Firestore ๋ฐ์ดํฐ ๋ชจ๋ธ์ JSON๊ณผ ์ ์ฌํ์ง๋ง ๋ช ๊ฐ์ง ์ค์ํ ์ธก๋ฉด์์ ๋ค๋ฆ ๋๋ค. ๋๋ ์ด๋ฏธ ๋ฐฐ์ด ๋ด์ ๋ฐฐ์ด์ด ๋ถ์กฑํ๋ค๊ณ ์ธ๊ธํ์ต๋๋ค. ํ์ ์ปฌ๋ ์ ๋ชจ๋ธ์ ํด๋น ์ปฌ๋ ์ ์ด ํฌํจ๋ JSON ๋ฌธ์์ ๋ณ๊ฐ๋ก ์ต๊ณ ์์ค์ ๊ฐ๋ ์ด ๋๋๋ก ํ๋ ๊ฒ์ ๋๋ค. ์ด์ ๋ํด ๋ฏธ๋ฆฌ ๋ง๋ค์ด์ง ์ง๋ ฌํ๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ๊ณ ์ฐ๋ ค๋ฉด ํน์ํ ์ฝ๋ ๊ฒฝ๋ก๊ฐ ํ์ํฉ๋๋ค. ์์ ์ ์ปฌ๋ ์ ์ ์ฒ๋ฆฌํ๋ ค๋ฉด ์์ ๋ง์ ์คํฌ๋ฆฝํธ์ ๋๊ตฌ๋ฅผ ์์ฑํด์ผ ํฉ๋๋ค. ๊ด๋ฆฌ ํจ๋์์๋ ํ ๋ฒ์ ํ ํ๋์ฉ๋ง ๋ณ๊ฒฝํ ์ ์์ผ๋ฉฐ ๊ฐ์ ธ์ค๊ธฐ/๋ด๋ณด๋ด๊ธฐ ๊ธฐ๋ฅ์ ์์ต๋๋ค.
๊ทธ๋ค์ ์ค์๊ฐ NoSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ฐ์ ธ์ ์๋ ์กฐ์ธ๊ณผ ๋ณ๋์ ๋นJSON ์ด์ ๊ฐ์ถ ๋๋ฆฐ ๋นSQL๋ก ์ ํํ์ต๋๋ค. GraftQL๊ณผ ๊ฐ์ ๊ฒ.
ํซ ์๋ฐ
Firestore๊ฐ ๋ ์์ ์ ์ด๊ณ ํ์ฅ ๊ฐ๋ฅํด์ผ ํ๋ค๋ฉด ์์ด๋ฌ๋ํ ์ ์ ์ผ๋ฐ ๊ฐ๋ฐ์๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก FireBase๋ฅผ ์ ํํ๋ ๊ฒ๋ณด๋ค ๋ ์์ ์ ์ธ ์๋ฃจ์ ์ ์ฌ์ฉํ๊ฒ ๋๋ค๋ ๊ฒ์ ๋๋ค. Grumpy Database Administrator๊ฐ ํ์๋ก ํ๋ ์ข ๋ฅ์ ์ํํธ์จ์ด์๋ ์ ํ์ด ์ํด์ผ ํ๋ ํ์ ์์ฅ์ ๋นํด ๋นํ์ค์ ์ธ ์์ค์ ๋ ธ๋ ฅ๊ณผ ์ฌ๋ฅ์ด ํ์ํฉ๋๋ค. ์ด๋ ๊ฐ๋ฐ ๋๊ตฌ์ ํ๋ ์ด์ด๊ฐ ์์ผ๋ฉด HTML5 Canvas๊ฐ Flash๋ฅผ ์ ํ ๋์ฒดํ ์ ์๋ ๊ฒ๊ณผ ์ ์ฌํฉ๋๋ค. ๋์ฑ์ด Firestore๋ ์ผ๋ฐ ๋น์ฆ๋์ค ์ฌ์ฉ์์ ๋ฐฉ์๊ณผ ์ผ์นํ์ง ์๋ ๋ฐ์ดํฐ ์์์ฑ๊ณผ ๋ฌด๊ท ๊ฒ์ฆ์ ๋ํ ์๊ตฌ์ ๋น ์ ธ ์์ต๋๋ค. ์ผํ๋ ๊ฒ์ ์ข์ํ๋ค: ๊ทธ์๊ฒ๋ ๋ชจ๋ ๊ฒ์ด ์ ํ ์ฌํญ์ ๋๋ค. ์๋ํ๋ฉด ๋๊น์ง ๋ชจ๋ ๊ฒ์ด ์ด์์ด๊ธฐ ๋๋ฌธ์ ๋๋ค.
FireBase์ ๊ฐ์ฅ ํฐ ๋จ์ ์ ๋๋ถ๋ถ์ ์น ๊ฐ๋ฐ์๊ฐ ๋ถ๋ณ์ฑ์ ๋ํด ์๊ธฐ ์ ์ ํด๋ผ์ด์ธํธ๊ฐ ์๋๋ณด๋ค ๋ช ๋
์์ ๋ง๋ค์ด์ก๋ค๋ ๊ฒ์
๋๋ค. ์ด ๋๋ฌธ์ FireBase๋ ์ฌ์ฉ์๊ฐ ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝํ ๊ฒ์ด๋ผ๊ณ ๊ฐ์ ํ๋ฏ๋ก ์ฌ์ฉ์๊ฐ ์ ๊ณตํ ๋ถ๋ณ์ฑ์ ํ์ฉํ์ง ์์ต๋๋ค. ๋ํ ์ฌ์ฉ์์๊ฒ ์ ๋ฌํ๋ ์ค๋
์ท์ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฌ์ฉํ์ง ์์ผ๋ฏ๋ก ๋น๊ต๊ฐ ํจ์ฌ ๋ ์ด๋ ค์์ง๋๋ค. ๋๊ท๋ชจ ๋ฌธ์์ ๊ฒฝ์ฐ ๋ณ๊ฒฝ ๊ฐ๋ฅํ diff ๊ธฐ๋ฐ ํธ๋์ญ์
๋ฉ์ปค๋์ฆ์ด ๋ถ์ ์ ํฉ๋๋ค. ์ฌ๋ฌ๋ถ, ์ฐ๋ฆฌ๋ ์ด๋ฏธ WeakMap
์๋ฐ์คํฌ๋ฆฝํธ์์. ํธ์ํด์.
๋ฐ์ดํฐ์ ์ํ๋ ๋ชจ์์ ์ ๊ณตํ๊ณ ๋๋ฌด๋ฅผ ๋๋ฌด ํฌ๊ฒ ๋ง๋ค์ง ์์ผ๋ฉด ์ด ๋ฌธ์ ๋ฅผ ํผํ ์ ์์ต๋๋ค. ํ์ง๋ง ๊ฐ๋ฐ์๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ์ ๋ํ ์ง์งํ๊ณ ์ค์ฉ์ ์ธ ์กฐ์ธ๊ณผ ํจ๊ป ๋ถ๋ณ์ฑ์ ์ฌ์ฉํ๋ ์ ๋ง ํ๋ฅญํ ํด๋ผ์ด์ธํธ API๋ฅผ ์ถ์ํ๋ค๋ฉด FireBase๊ฐ ํจ์ฌ ๋ ํฅ๋ฏธ๋ก์ธ์ง ๊ถ๊ธํฉ๋๋ค. ๋์ ๊ทธ๋ค์ ๊นจ์ง์ง ์์ ๊ฒ์ ๊ณ ์น๋ ค๊ณ ๋ ธ๋ ฅํ๋ ๊ฒ ๊ฐ์๊ณ , ๊ทธ๊ฒ์ด ์ํฉ์ ๋์ฑ ์ ํ์์ผฐ์ต๋๋ค.
Firestore ์์ฑ์ ๋ชจ๋ ๋ ผ๋ฆฌ๋ฅผ ์์ง ๋ชปํฉ๋๋ค. ๋ธ๋๋ฐ์ค ๋ด๋ถ์์ ์ด๋ค ๋๊ธฐ๊ฐ ์๊ธธ์ง ์ถ์ธกํด ๋ณด๋ ๊ฒ๋ ์ฌ๋ฏธ๋ค. ๋งค์ฐ ์ ์ฌํ์ง๋ง ๋น๊ตํ ์ ์๋ ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ณ์นํ๋ ๊ฒฝ์ฐ๋ ๋งค์ฐ ๋๋ญ ๋๋ค. ๋๊ตฐ๊ฐ๊ฐ ์๊ฐํ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค. "Firebase๋ Google Cloud์์ ์๋ฎฌ๋ ์ด์ ํ ์ ์๋ ๊ธฐ๋ฅ์ผ ๋ฟ์ ๋๋ค.", ๊ทธ๋ฌ๋ ์ค์ ์๊ตฌ ์ฌํญ์ ์๋ณํ๊ฑฐ๋ ์ด๋ฌํ ์๊ตฌ ์ฌํญ์ ๋ชจ๋ ์ถฉ์กฑํ๋ ์ ์ฉํ ์๋ฃจ์ ์ ๋ง๋๋ ๊ฐ๋ ์ ์์ง ๋ฐ๊ฒฌํ์ง ๋ชปํ์ต๋๋ค. โ๊ฐ๋ฐ์๋ค์ด ๊ทธ๊ฒ์ ๋ํด ์๊ฐํ๊ฒ ํด์ฃผ์ธ์. UI๋ง ์๋ฆ๋ต๊ฒ ๋ง๋ค์ด์ฃผ์ธ์... ๋ถ์ ๋ ์ถ๊ฐํด์ฃผ์ค ์ ์๋์?โ
๋๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ๋ํด ๋ช ๊ฐ์ง๋ฅผ ์ดํดํฉ๋๋ค. ๋๋ ํ์คํ "ํ๋์ ํฐ JSON ํธ๋ฆฌ์ ์๋ ๋ชจ๋ ๊ฒ" ๊ฐ๋
์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋๊ท๋ชจ ๊ตฌ์กฐ์ ๊ฐ๊ฐ์ ์ถ์ํํ๋ ค๋ ์๋๋ก ๋ด
๋๋ค. ์ํํธ์จ์ด๊ฐ ๋ชจํธํ ๋ฐ์ดํฐ ๊ตฌ์กฐ ํ๋ํ์ ๊ฐ๋จํ ๋์ฒํ ๊ฒ์ด๋ผ๊ณ ๊ธฐ๋ํ๋ ๊ฒ์ ๋ฏธ์น ์ง์
๋๋ค. ์ํฉ์ด ์ผ๋ง๋ ๋์ ์ง ์์ํ ํ์๋ ์์ต๋๋ค. ์๊ฒฉํ ์ฝ๋ ๊ฐ์ฌ๋ฅผ ์ํํ๊ณ ๋๋ ๋ํฌ๋ค์ด ๊ฟ๋ ๊พธ์ง ๋ชปํ ๊ฒ๋ค์ ๋ณด์๋ค.. ํ์ง๋ง ๋๋ ๋ํ ์ข์ ๊ตฌ์กฐ๊ฐ ์ด๋ค ๊ฒ์ธ์ง ์๊ณ ์์ต๋๋ค.
FireBase์ ์ฟผ๋ฆฌ ์ง์์ ์ด๋ค ํ์ค์์๋ ์ด์ ํ๋ฉฐ ์ฌ์ค์ ์กด์ฌํ์ง ์์ต๋๋ค. ํ์คํ ๊ฐ์ ์ด ํ์ํ๊ฑฐ๋ ์ต์ํ ์์ ์ด ํ์ํฉ๋๋ค. ๊ทธ๋ฌ๋ Firestore๋ ์ผ๋ฐ SQL์์ ๋ฐ๊ฒฌ๋๋ ๊ฒ๊ณผ ๋์ผํ XNUMX์ฐจ์ ์ธ๋ฑ์ค๋ก ์ ํ๋๊ธฐ ๋๋ฌธ์ ๊ทธ๋ค์ง ๋์์ง์ง ์์ต๋๋ค. ์ฌ๋๋ค์ด ํผ๋์ค๋ฌ์ด ๋ฐ์ดํฐ์ ๋ํด ์คํํ๋ ์ฟผ๋ฆฌ๊ฐ ํ์ํ ๊ฒฝ์ฐ ์ ์ฒด ํ ์คํธ ๊ฒ์, ๋ค์ค ๋ฒ์ ํํฐ ๋ฐ ์ฌ์ฉ์ ์ ์ ์ฌ์ฉ์ ์ ์ ์์๊ฐ ํ์ํฉ๋๋ค. ์์ธํ ์ดํด๋ณด๋ฉด ์ผ๋ฐ SQL์ ๊ธฐ๋ฅ์ ๊ทธ ์์ฒด๋ก ๋๋ฌด ์ ํ์ ์ ๋๋ค. ๋ํ ์ฌ๋๋ค์ด ํ๋ก๋์ ์์ ์คํํ ์ ์๋ ์ ์ผํ SQL ์ฟผ๋ฆฌ๋ ๋น ๋ฅธ ์ฟผ๋ฆฌ์ ๋๋ค. ์ค๋งํธ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ถ ๋ง์ถคํ ์ธ๋ฑ์ฑ ์๋ฃจ์ ์ด ํ์ํฉ๋๋ค. ๋ค๋ฅธ ๋ชจ๋ ๊ฒ์๋ ์ต์ํ ์ฆ๋ถ ๋งต ์ถ์๋ ์ด์ ์ ์ฌํ ๊ฒ์ด ์์ด์ผ ํฉ๋๋ค.
์ด์ ๋ํ ์ ๋ณด๋ฅผ Google Docs์์ ๊ฒ์ํ๋ฉด BigTable ๋ฐ BigQuery์ ๊ฐ์ ๋ฐฉํฅ์ผ๋ก ๋์๊ฐ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ฌํ ๋ชจ๋ ์๋ฃจ์ ์๋ ๋๋ฌด ๋ง์ ๊ธฐ์ ์์ ์ ๋ฌธ ์ฉ์ด๊ฐ ์๋ฐ๋์ด ์์ผ๋ฏ๋ก ๋นจ๋ฆฌ ๋๋์๊ฐ์ ๋ค๋ฅธ ๊ฒ์ ์ฐพ๊ธฐ ์์ํ ๊ฒ์ ๋๋ค.
์ค์๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๊ฐ์ฅ ์ํ์ง ์๋ ๊ฒ์ ๊ด๋ฆฌ๊ธ ๊ธ์ฌ๋ฅผ ๋ฐ๋ ์ฌ๋๋ค์ด ๋ง๋ค๊ณ ๊ทธ๋ค์ ์ํด ๋ง๋ ๊ฒ์ ๋๋ค.
(*) ๋๋ด์ด๊ณ ๋ณ๊ฑฐ ์์ต๋๋ค
๊ด๊ณ ์ ๊ถ๋ฆฌ์
์ฐพ๊ณ ์๋
์ถ์ฒ : habr.com