์ง์ ๋ค์ ์ํ ์ํค ์ฌ์ดํธ๋ฅผ ๋ง๋ค์ด๋ณด์ธ์! ์ํค ์ฌ์ดํธ์๋ ์ํค ๋ฟ ์๋๋ผ ์ฌ๋ฌ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์ด์ผ ํฉ๋๋ค!
- ํ์ฌ ์ ์ฅ์๋ฅผ ๋ก์ปฌ์ ํด๋ก (Clone)ํฉ๋๋ค.
- ์์ ์ ํ๋ช ์ผ๋ก ๋ธ๋์น๋ฅผ ์์ฑํฉ๋๋ค.(๊ตฌ๋ถ ๊ฐ๋ฅํ๋๋ก ํ๋ช ์ ๊ผญ ํ์ค์นผ์ผ์ด์ค๋ก ํ์ํ์ธ์, git branch Y_FE_Toy1_Team13)
- ์์ ์ ํ๋ช ๋ธ๋์น์์ ๊ณผ์ ๋ฅผ ์ํํฉ๋๋ค.
- ๊ณผ์ ์ํ์ด ์๋ฃ๋๋ฉด, ์์ ์ ํ๋ช ๋ธ๋์น๋ฅผ ์๊ฒฉ ์ ์ฅ์์ ํธ์(Push)ํฉ๋๋ค.(main ๋ธ๋์น์ ํธ์ํ์ง ์๋๋ก ๊ผญ ์ฃผ์ํ์ธ์, git push origin Y_FE_Toy1_Team13)
- ์ ์ฅ์์์ main ๋ธ๋์น๋ฅผ ๋์์ผ๋ก Pull Request ์์ฑํ๋ฉด, ๊ณผ์ ์ ์ถ์ด ์๋ฃ๋ฉ๋๋ค!(E.g, main <== Y_FE_Toy1_Team13)
- Pull Request ๋งํฌ๋ฅผ LMS๋ก๋ ์ ์ถํด ์ฃผ์ ์ผ ํฉ๋๋ค.
- main ํน์ ๋ค๋ฅธ ์ฌ๋์ ๋ธ๋์น๋ก ์ ๋ ๋ณํฉํ์ง ์๋๋ก ์ฃผ์ํ์ธ์!
- Pull Request์์ ๋ณด์ด๋ ์ค๋ช ์ ๋ค๋ฅธ ์ฌ๋๋ค์ด ์ดํดํ๊ธฐ ์ฝ๋๋ก ๊ผผ๊ผผํ๊ฒ ์์ฑํ์ธ์!
- Pull Request์์ ๊ณผ์ ์ ์ถ ํ ์ ๋ ๋ณํฉ(Merge)ํ์ง ์๋๋ก ์ฃผ์ํ์ธ์!
- ๊ณผ์ ์ํ ๋ฐ ์ ์ถ ๊ณผ์ ์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ, ๋ฐ๋ก ๋ด๋น ๋ฉํ ๋ ๊ฐ์ฌ๋๊ป ์๊ธฐํ์ธ์!
- ๋ฌธ์ํธ์ง, revision ๊ธฐ๋ฅ์ ์ ๊ณตํ์ฌ ์ ๋ฌด์ผ์ง๋ฅผ ์์ฑํ ์ ์๋ ์ง์๋ค์ ์ํ ์ํค์ฌ์ดํธ ๊ตฌํ(๋งํฌ๋ค์ด ํ์)
- firebase database (Firestore) ์ด์ฉ
- ๋ชจ๋ฌ์ ํ์ฉํ ๊ทผ๋ฌด ์๊ฐ์ ํ์ํ๋ ์๊ณ ๋ฐ ํ์ด๋จธ ์ฐฝ ๊ตฌํ
- ์บ๋ฌ์ ์ ํ์ฉํ ํ์ฌ ๊ณต์ง ํ์ด์ง
- ๊ฐค๋ฌ๋ฆฌ ํ์ด์ง / ์ ๋ฌด์ผ์ง ํ์ด์ง ๋ฑ ๋ฉ๋ด๋ฅผ ํํฐ๋ง ๋๋ ์นดํ ๊ณ ๋ฆฌํ ํ๋ ์ ํ๋ฐ ๊ตฌํ
- netlify ๋ฑ์ ์ด์ฉํ ์ ์ ํ์ด์ง ๋ฐฐํฌ
- TypeScript ์ฌ์ฉ ํ์
- ๊ณผ์ ์ ๋ํ ์ค๋ช
์ ํฌํจํย
README.md
ย ํ์ผ ์์ฑ- ํ์๋ณ๋ก ๊ตฌํํ ๋ถ๋ถ ์๊ฐ
- React ์ฌ์ฉ์ ์ ํ
- ๊ธฐํ ๋์์ด ์๋ฃ๋๊ธฐ ์ ์ ๋ก๋ฉ ์ ๋๋ฉ์ด์ ๊ตฌํ
- ํ์ด์ง๋ค์ด์
- ๊ด๋ จ๋ ๊ธฐํ ๊ธฐ๋ฅ๋ ๊ณ ๋ ค
- eslint ์ค์ , ์ปค๋ฐ์ปจ๋ฒค์ , ๋ฌธ์ํ ๋ฑ ํํ๋ก์ ํธ์ ํ์ํ ์ถ๊ฐ ์์ ๋ค
์๋ ์์๋ ๋ชจ๋ ํ๋์ ์๊ฒฌ์ ๋๋ค!
๋ฐ๋ผํ๋๊ฒ ์๋๋ผ ์์ ๋ง์ ๊ฒฐ๊ณผ๋ฌผ์ ๋ง๋ค์ด๋ณด์ธ์.
[์์ 1]
[์์ 2]
2.mov
[์์ 3]
3.mov
[์์ 4]
Firestore์ ๋ํ ๊ฐ์ด๋์ ๋๋ค.
์์ธํ ๋ด์ฉ์ ๊ณต์ ํํ์ด์ง ๋ฅผ ์ฐพ์๋ณด๊ธธ ์ ๊ทน ๊ถ์ฅํฉ๋๋ค!
import { getFirestore } from "firebase/firestore";
export const db = getFirestore(fireBaseApp);
Firestore์ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ์ ํฌ๊ฒ ๋๊ฐ์ง์ด๋ค.
- Firebase console์์ ์์ ๋ฐ์ดํฐ ์ถ๊ฐํด์ฃผ๊ธฐ
- ์ฝ๋๋ก ๋ฐ์ดํฐ ์ถ๊ฐํ๊ธฐ
- Firebase console์ ์ ์ํ๋ค.
- ์์ ์ ํ๋ก์ ํธ๋ฅผ ์ ํํ๋ค.
- ์ผ์ชฝ ๋ฉ๋ด์์ย
Firestore Database
๋ฅผ ์ ํํ๋ค. + ๋ฒํผ
์ ๋๋ฌ ์ปฌ๋ ์ > ๋ฌธ์๋ฅผ ๋ง์๋๋ก ์ถ๊ฐํด์ค๋ค.- ํ๋๋ฅผ ์ถ๊ฐํ์ฌ ๋ฌธ์์ ๋ฐ์ดํฐ๋ฅผ ๋ฃ์ด์ค๋ค.
Firestore๋ย setDoc
,ย addDoc
ย ๋ ๊ฐ์ง ํจ์๋ก ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ ์ ์๋ค.
์ด์ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํด๋ณด์.
1.ย addDoc
addDoc
์ ์๋์ ๊ฐ์ด ์ฌ์ฉํ์ฌ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ ์ ์๋ค.
import { addDoc, collection } from "firebase/firestore";
const writtenDoc = await addDoc(collection(db, "wiki"), {
title: "LGH",
description: "ํ๋จผ๋ฐ๋ฌ...์ฌ๊ณ ์ถ๋ค...",
});
console.log("Document written with ID: ", writtenDoc.id);
// ์๋ก ์์ฑ๋ Document์ ID๋ฅผ ๋ฐํํ๋ค.
์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ๊ธฐ ์ํด์ ๋จผ์ ์ํ๋ collection์ ์ ํํด์ผ ํ๋ค. ์ ์์ ์ย addDoc
ย ์์์ ์ฌ์ฉํย collection
ย ํจ์๋ db์์ ์๋ collection์ ์ ํํ๊ฑฐ๋ ์์ ๊ฒฝ์ฐ ์๋ก์ด collection์ ์์ฑํ์ฌ ๋ฐํํ๋ค.
Firebase์ Doc๋ ๊ธฐ๋ณธ์ ์ผ๋ก ID๋ฅผ ๊ฐ์ ธ์ผ ํ๋๋ฐ, addDoc์ ์ฌ์ฉํ๋ฉด ID๋ฅผ ์๋์ผ๋ก ๋ง๋ ๋ค. ๋ํ, ์ด๋ฏธ ์กด์ฌํ๋ Doc์ย addDoc
์ ์ฌ์ฉํ๋ฉด ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.
2.ย setDoc
setDoc
์ ์๋์ ๊ฐ์ด ์ฌ์ฉํ์ฌ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ ์ ์๋ค.
import { setDoc, doc } from "firebase/firestore";
await setDoc(doc(db, "wiki", "new-id"), {
title: "LGH",
description: "ํ๋จผ๋ฐ๋ฌ...์ฌ๊ณ ์ถ๋ค...",
});
addDoc
๊ณผ์ ์ฐจ์ด์ ์
- idย ๋ฅผ ์ง์ ํด์ค์ผํจ
collection
ย ๋์ ยdoc
์ ์ฌ์ฉํจ- ์ด๋ฏธ ์กด์ฌํ๋ Doc์ ์ฌ์ฉ๊ฐ๋ฅ
3๊ฐ์ง ์ด๋ค.
setDoc
์ย addDoc
๊ณผ ๋ฌ๋ฆฌ collection์ด ์๋๋ผ doc๋ฅผ ์ ํํด์ผ ํ๋ค. ์ด๋ย setDoc
์ด ๋ฐ์ดํฐ์ ์ถ๊ฐ ๋ฟ ์๋๋ผ ๋ฐ์ดํฐ ๋ฎ์ด์ฐ๊ธฐ ๊ธฐ๋ฅ๋ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ด๋ค. ๋ฌํํ๊ฒ ์๊ฐํด๋ณด๋ฉดย setDoc
์ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ ๋
- doc์ ์ ํํ๊ฑฐ๋ ์๋ก์ด doc์ ์์ฑ
- doc์ ๋ด์ฉ์ ๋ฎ์ด์
์ ๋ฐฉ์์ผ๋ก ๋์ํ๋ ๊ฒ์ด๋ค.
Doc์ ์ ํํ๋ ๋ฐฉ๋ฒ์ย doc
ย ํจ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด๋ค.ย [doc()](https://firebase.google.com/docs/reference/js/firestore_.md?hl=ko#doc)
ย ํจ์๋ย DocumentReference
ย instance๋ฅผ ๋ฐํํ๋ค. ์ ๋ ๊ฒฝ๋ก๋ฅผ ์ฌ์ฉํ์ฌ ์ํ๋ Document๋ฅผ ์ ํํ ์ ์๋ค. ์์์ ๋ง๋ค์ด๋ย wiki > completed
ย ๋ฌธ์๋ ์๋์ฒ๋ผ ๋ถ๋ฌ์ฌ ์ ์๋ค.
import { doc } from "firebase/firestore";
const docRef = doc(db, "wiki", "completed");
doc
ย ํจ์์ 3๋ฒ์งธ ์ธ์๊ฐ ๋ฐ๋กย idย ์ด๋ค. id๋ ์ด๋ฏธ ์กด์ฌํ๋ Doc์ id๋ฅผ ์ฌ์ฉํ ์๋ ์๊ณ , ์๋ก์ด id๋ฅผ ์ฌ์ฉํ ์๋ ์๋ค. ์กด์ฌํ๋ id๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์๋ ํด๋น Doc์ ๋ฐ์ดํฐ๋ฅผ ๋ฎ์ด์ฐ๊ฒ ๋๋ค. ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ์ ์๋ก์ด Doc๋ฅผ ์์ฑํ๋ค.
์ด์จ๊ฑฐ๋ ๋ฐ์ดํฐ๋ฅผ ์๋ก ์ถ๊ฐํ ์ ์๋ ๊ฒ์ด๋ค.
Firestore์ ๋ฐ์ดํฐ๋ฅผ ์์ ํ๋ ๋ฐฉ๋ฒ์ ํฌ๊ฒ ๋๊ฐ์ง์ด๋ค.
- Firebase console์์ ์์ ๋ฐ์ดํฐ ์์ ํด์ฃผ๊ธฐ
- ์ฝ๋๋ก ๋ฐ์ดํฐ ์์ ํ๊ธฐ
1๋ฒ์ ๋ฐ์ดํฐ ์์ฑ๊ณผ ๋น์ทํ๊ฒ ์งํํ๋ฉด ๋๋ค.
2. ์ฝ๋๋ก ๋ฐ์ดํฐ ์์ ํ๊ธฐ
Firestore๋ย setDoc
,ย update
ย ๋ ๊ฐ์ง ํจ์๋ก ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ ์ ์๋ค.
setDoc
์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์์ ์ ํ์๋ค.
setDoc
์ ๋ฐ์ดํฐ๋ฅผ ๋ฎ์ด์ด๋ค. ๋ฐ๋ผ์ ๊ธฐ์กด์ ๋ฌธ์๋ฅผ ์ ์งํ ์ฑ ์ผ๋ถ๋ถ์ ๋ฐ์ดํฐ๋ง ๋ณ๊ฒฝํ๊ณ ์ถ์ด๋ ์ด์ ์ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ์๋ก ์
๋ ฅํด์ผ ํ๋ค.
๊ทธ๋ฌ๋ย update
๋ ๊ธฐ์กด์ ๋ฐ์ดํฐ๋ฅผ ์ ์งํ ์ฑ ์ผ๋ถ๋ถ์ ๋ฐ์ดํฐ๋ง ๋ณ๊ฒฝํ ์ ์๋ค.
import { updateDoc, doc } from "firebase/firestore";
await updateDoc(doc(db, "wiki", "new-id"), {
description: "ํ๋จผ๋ฐ๋ฌ...200๋ง์...",
});
์์ ๊ฐ์ด ์ฝ๋๋ฅผ ์์ฑํ๋ฉดย new-id
๋ผ๋ id๋ฅผ ๊ฐ์ง ๋ฌธ์์ description๋ง ๋ณ๊ฒฝ๋๋ค.