๐ฑ dataBase
๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ๊ด๋ฆฌํ๋ ์์คํ
๋๋์ ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๊ณ ๊ฒ์ ๊ฐ๋ฅ
โ๏ธย dataBase
| ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค | ๋น๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค |
---|
๋ฐ์ดํฐ ๊ตฌ์กฐ | ํ
์ด๋ธ ๊ธฐ๋ฐ, ๊ณ ์ ๋ ์คํค๋ง | ๋ฌธ์ ํค-๊ฐ ๋ฑ, ์ ์ฐํ ์คํค๋ง |
๋ํ์ ์ธ ์ธ์ด | SQL | JSON, BSON, ๊ธฐํ |
์ง์ํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ
| MySQL, PostgreSQL, Oracle DB | MongoDB, Firebase Firestore, Cassandra |
- Relational( ๊ด๊ณํ )
- ๋ชจ๋ ๋ฐ์ดํฐ๋ ๊ฐ๊ฐ ๋
๋ฆฝ์ ์ธ ํ
์ด๋ธ์ ์ ์ฅ
- ๋ชจ๋ ๋ฐ์ดํฐ๋ ์ด๋ฌํ ํ
์ด๋ธ์ ์ ๋ณด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ด๋ฆฌ
- ๊ฐ ์์( Entity )๋ผ๋ฆฌ์ ๊ด๊ณ๋ฅผ ํ
์ด๋ธ ํ์์ผ๋ก ํํํ์ฌ ๊ด๋ฆฌ
- NoSQL( ๋น๊ด๊ณํ )
- ๋ฐ์ดํฐ๋ฅผ ํ๋์ ๋ฌธ์( Document )๋ก ๊ด๋ฆฌ, JSON ํ์์ด ๊ฐ์ฅ ๋ณดํธ์
โfirebase ์ฃผ์ ๊ฐ๋
( ๋น๊ด๊ณํ )
- ์ ์ฐํ ๋ฐ์ดํฐ ๋ชจ๋ธ
- NoSQL ๋ฌธ์ ์งํฅ ๋ฐ์ดํฐ ๋ฒ ์ด์ค
- ๋ฐ์ดํฐ๋ฅผ ๋ฌธ์์ ์ปฌ๋ ์
ํํ๋ก ์ ์ฅ
- ์ค์๊ฐ ๋๊ธฐํ
- ๋ฐ์ดํฐ ๋ณ๊ฒฝ ์ฌํญ์ ์ค์๊ฐ์ผ๋ก ํด๋ผ์ด์ธํธ์ ๋๊ธฐํ
- ๊ฐ๋ ฅํ ์ฟผ๋ฆฌ ์ง์
where
, orderBy
, limit
๋ฑ ๋ณต์กํ ์ฟผ๋ฆฌ ์คํ ๊ฐ๋ฅ
- ๋ณด์ ๊ท์น
- ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ ์ ๊ทผ ๊ท์น
- ์ฌ์ฉ์ ๊ถํ ์ค์ ๋ฐ ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๋ฅผ ๋ณดํธ
โย ๋ฌธ์( document )์ ์ปฌ๋ ์
( collection )
๐ฑ
- document: ํ๋์ ๋ฐ์ดํฐ
- collection: ๋ฌธ์๋ค์ ์งํฉ
โ๏ธย document
- firebasedml ๊ธฐ๋ณธ ์ ์ฅ ๋จ์
- ๊ฐ์ ๋งคํ๋๋ ํ๋๋ฅผ ํฌํจํ๋ ๊ฐ๋จํ ๋ ์ฝ๋ ํ์( ์ฝ๋ 1 ์ค = 1 ๋ ์ฝ๋ )
- ๋ฌธ์๋ง๋ค ๊ณ ์ ํ ID๋ฅผ ๊ฐ์ง
- JSON๊ณผ ์ ์ฌํ ํํ
โ๏ธย collection
- ๋ฌธ์๋ฅผ ํฌํจํ๋ ๊ทธ๋ฃน
- ํ์์ ์๋ธ ์ปฌ๋ ์
์ ๊ฐ๋ ๊ฒ๋ ๊ฐ๋ฅ
- JSON์ฒ๋ผ ๊ณ์ํด์ ๋ฌธ์ + ์ปฌ๋ ์
์ ์์ฑํด ๊ฐ ์ ์์ !
โ๏ธย firestore ์ฃผ์ ๋ฉ์๋
collection(firestore, collectionName)
doc(firestore, collectionName, docId)
query(collectionRef, ...queryConstraints)
where(fieldPath, opStr, value)
orderBy(fieldPath, directionStr)
getDocs(query)
addDoc(collectionRef, data)
setDoc(docRef, data, options)
updateDoc(docRef, data)
deleteDoc(docRef)
โ๏ธย ์ค์๊ฐ ๋๊ธฐํ
- ํ ๋ฒ ์กฐํํ ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋์์ ๊ฒฝ์ฐ ๋ค์ ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๋ ๊ฒ์ด ๊ธฐ๋ณธ์ ๋ฐ์ดํฐ ์์ฒญ ํ๋ฆ
- firestore์์๋ ์ค์๊ฐ ๋๊ธฐํ๋ฅผ ์ ๊ณต
- ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋๋ฉด ์๋์ผ๋ก ์ต์ ์ํ ์
๋ฐ์ดํธ
- ํญ์ ์ต์ ๋ฐ์ดํฐ ์ ์ง ๊ฐ๋ฅ (
onSnapshot
์ฌ์ฉ )
โ๏ธย ๋ณด์ ๊ท์น
- ์ ํ๋ฆฌ์ผ์ด์
์ ๋ฐ์ดํฐ๋ฅผ ๋ณดํธํ๊ณ ์ฌ์ฉ์๋ณ๋ก ์ ๊ทผ ๊ถํ์ ์ค์ ํ ์ ์๋ ๊ธฐ๋ฅ
- ์ธ๊ฐ( Authorization ) ๊ฐ๋
: ์ฌ์ฉ์๋ณ๋ก ์ด๋ค ๋ฆฌ์์ค์ ์ ๊ทผํ ์ ์์์ง ๊ฒฐ์ ๊ฐ๋ฅ
โ๏ธย ๊ฐ๋ ฅํ ์ฟผ๋ฆฌ ์ง์( ๊ฒ์ / ์กฐํ )
- Query( ์ฟผ๋ฆฌ ): ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ๊ฑฐ๋ ์กฐ์์ ์ํด ์ฌ์ฉํ๋ ์์ฒญ
where
, orderBy
, limit
, startAt
, arrayContains
...
- pros ?
- ์ ์ฐํ ๋ฐ์ดํฐ ์กฐํ
- ๋ณต์กํ ์กฐ๊ฑด์ ๊ฒฐํฉํ์ฌ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ ํํ๊ฒ ์กฐํ ๊ฐ๋ฅ
- ๊ณ ์ฑ๋ฅ ์ฟผ๋ฆฌ
- ์๋ ์ธ๋ฑ์ฑ๊ณผ ์ฟผ๋ฆฌ ์ต์ ํ๋ฅผ ํตํด ๋น ๋ฅด๊ณ ํจ์จ์ ์ผ๋ก ๋ฐ์ดํฐ ์กฐํ ๊ฐ๋ฅ
- ์ค์๊ฐ ์
๋ฐ์ดํธ
- ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๊ฐ ์ค์๊ฐ์ผ๋ก ์
๋ฐ์ดํธ๋์ด ํญ์ ์ต์ ๋ฐ์ดํฐ ์ ๊ณต