์ฒ์์๋ ๋น์ฐํ(?) Context API์์ ๋ชจ๋ ์ํ๊ฐ์ ๊ด๋ฆฌํ๋ ค๊ณ ํ๋๋ฐ, ํํฐ๋๊ป์ "๊ตณ์ด...?"๋ผ๊ณ ํ์๋ ๋ฐ๋์ ํ์๋ค๊ณผ ๊ณ ๋ฏผํ๊ฒ ๋๋ค. ํ ํ์ด์ง์์๋ง ์ฐ๋ ๊ฑด๋ฐ ์ ์ญ์ผ๋ก ๊ด๋ฆฌํ ํ์๊ฐ ์๋? ๋ผ๋ ์๊ฐ์ด ๋ค๋๋ผ.
// ์ด๋ ๊ฒ ๋ฐ๋ก ๋นผ๋๊น ๊น๋ํ๋ค!
export const fetchData = async (table) => {
try {
const { data } = await supabase.from(table).select("*");
return data;
} catch (error) {
console.log("error", error);
}
};
ํ ์ด๋ธ๋ช ๋ง props๋ก ๋ฐ์์ ์ฌ์ฌ์ฉํ ์ ์๊ฒ ๋ง๋ค์๋ค. ์ฒ์์๋ ๊ฐ ์ปดํฌ๋ํธ๋ง๋ค API ํธ์ถ ๋ก์ง์ ์์ฑํ๋ ค๊ณ ํ๋๋ฐ, ํ์๋ค๊ณผ ์์ ํ api ํด๋๋ฅผ ๋ฐ๋ก ๋ง๋ค์ด์ ๊ด๋ฆฌํ๊ธฐ๋ก!
์ฌ๊ธฐ์ ์ฌ๋ฏธ์๋ ์ค์๊ฐ ์์๋ค...
// ์ด๋ ๊ฒ ํ๋๋ Promise๋ผ๊ณ ๋จ๋๋ผ...
const newFeedsData = await fetchData("feeds");
setFeedsData(newFeedsData);
์๊ณ ๋ณด๋ async ํจ์๋ก ๊ฐ์ธ์ผ ํ๋ค! Supabase๋ ๋น๋๊ธฐ ์ฒ๋ฆฌ๊ฐ ํ์๋ผ๋ ๊ฑธ ๋ฐฐ์ ๋ค. ๊ฒฐ๊ตญ ์ด๋ ๊ฒ ํด๊ฒฐ:
useEffect(() => {
async function fetchFeeds() {
const newFeedsData = await fetchData("feeds");
setFeedsData(newFeedsData);
}
fetchFeeds();
}, []);
๋ชจ๋ฌ์ ๊ฒฝ์ฐ๋ ์ข ๊ณ ๋ฏผ์ด ๋๋ค. ์ง๊ธ์ Feed ํ์ด์ง์์๋ง ์ฐ์ง๋ง, ๋์ค์ ๋ค๋ฅธ ๊ณณ์์๋ ์ธ ์ ์์ง ์์๊น? ๊ฒฐ๊ตญ Context API๋ก ๊ฐ๊ธฐ๋ก ๊ฒฐ์ :
const [isModalOpen, setIsModalOpen] = useState(false);
const toggleModal = () => setIsModalOpen(state => !state);
ํ์๋ค๊ณผ ์์ ํ๋ค๊ฐ ์์์น ๋ชปํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค. dev ๋ธ๋์น์์ pull์ ๋ฐ์๋๋ฐ, ๊ณตํต ๋ ์ด์์ ์์ ์ด ๋ด ์ปค๋ฐ ์คํ ์ด์ง์ ์ถ๊ฐ๋๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฑฐ๋ค!
ํํฐ๋์ด ์ถ์ฒํด์ฃผ์ stash๊ฐ ์ ๋ง ์ ์ฉํ๋ค. ๊ทธ๋ฅ ์ปค๋ฐํ์ง ๋ง๊ณ ์์๋ณด๊ด ๊ฐ๋ ์ผ๋ก ์ ๊ทผํ๋ผ๊ณ ํ์๋๋ผ.
# ํ์ฌ ์์
์์์ ์ฅ
git stash save "์์
์ค์ด๋ ๋ด์ฉ"
# dev ๋ธ๋์น์์ pull
git pull origin dev
# ์์์ ์ฅํ๋ ์์
๋ค์ ๊ฐ์ ธ์ค๊ธฐ
git stash pop
conflict ๊ด๋ จ ์ฝ์ ๋ฉ์์ง๊ฐ ๋ฐ ๋๋ ์ด๋ ๊ฒ ํ๋ผ๊ณ ํ์ จ๋ค:
git config pull.rebase false
๋ด์ผ์ ์ด ๋ชจ๋ฌ์ ์ค์ ๊ธฐ๋ฅ์ ๋ถ์ฌ๋ณผ ์์ . ๋ฒ์จ๋ถํฐ ๋จธ๋ฆฌ๊ฐ ์ํ๋ค... ๐