โ๏ธfirebase store์์๋ ๋ถ๋ถ ํ
์คํธ ๊ฒ์์ ์ง์ํ์ง ์๋๋ค. ex) ๊ท์ฌ์ด ํธ๋๋ผ๋ ์ ์ ๋ฅผ ๊ฒ์ํ๊ธฐ ์ํด์, ํธ๋๋ผ๊ณ ๊ฒ์ํ๋ฉด ์ฟผ๋ฆฌ๊ฐ ๋ถ๊ฐ๋ฅํ๋ค. ์ ๋์ด๊ฐ ์ผ์นํ๋๋ก ์
๋ ฅํด์ผ ์ฐพ๊ณ ์ํ๋ ์ ์ ๋ฅผ ๊ฒ์ํ ์ ์๋ค ์ด์ ๊ฐ์ ์ํฉ์ด๋ผ๋ฉด, ๊ฒ์๊ธฐ๋ฅ์ ํฐ ์๋ฏธ๊ฐ ์๋๊ฒ ๊ฐ์ ๋ถ๋ถ ๋ฌธ์์ด๋ก ๊ฒ์์ด ๊ฐ๋ฅํ๋๋ก ํด๊ฒฐํด๋ณด๊ณ ์ ํ๋ค. export const cleaningText = (text: string): string => { // ํน์๋ฌธ์ ๋ฐ ๊ณต๋ฐฑ ์ ๊ฑฐ, ๋ค์ํ ์ธ์ด ์ง์ const regEx = /[`~!@#$%^&*()_|+\-=?;:'",.\{\}\[\]\\\/ ]/gim; const cleanText = text.replace(regEx, "").toLowerCase(); return ..
๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ
CSR์ ๋ํ์ ์ธ ์ด๊ธฐ ๋ก๋ฉ์๋๋ฅผ ๊ฐ์ ํ๊ธฐ ์ํ ์์
๋ค์ ์ํํด๋ณด์๋ค. 1. React.lazy์ Suspense ์ ์ฉํ๊ธฐ SPA์ ๋ํ์ ์ธ ๋จ์ ์ผ๋ก, ์ต์ด ๋ก๋์ ํ์ํ์ง ์์ ์ ์๋ ๋ชจ๋ ํ์ผ์ ๋ค์ด๋ฐ๊ธฐ ๋๋ฌธ์, ์ด๊ธฐ ๋ก๋ฉ์๋๊ฐ ๊ธธ์ด์ง๋ค๋ ์ ์ด ์๋ค. ์ด๋ฅผ ๊ฐ์ ํ๊ธฐ ์ํ ๋ํ์ ์ธ ํด๊ฒฐ๋ฐฉ๋ฒ์ค ํ๋๊ฐ lazy Loading์ด๋ค. ๋์ load ํด๋น ๋ชจ๋์ด ํ์ํ ๋๋ง ๋ก๋ → ์ฝ๋ ์คํ๋ฆฌํ
(code splitting)๊ณผ ์ง์ฐ ๋ก๋ฉ(lazy loading)์ ๊ฐ๋ฅ → ์ฌ์ฉ์๊ฐ ํน์ ํ์ด์ง๋ ๊ธฐ๋ฅ์ ์ ๊ทผํ ๋ ํ์ํ ๋ฆฌ์์ค๋ง ๋ค์ด๋ก๋๋ฉ๋ฅ์ํ ์๋น์ค์ ๋ผ์ฐํธ๋ ๋ค์๊ณผ ๊ฐ์ด ์ ์๋์ด ์๋ค.const PATHS = { main: "/main", logIn: "/", signUp: "/signup", f..
์ข์์๋ ๋ง์ด ์ฌ์ฉ๋๋ ๊ธฐ๋ฅ์ด๊ธฐ ๋๋ฌธ์, ์ฑ๋ฅ ์ต์ ํ๋ฅผ ์ํด ๋ก์ง์ ๋ถ๋ฆฌํ๋๊ฒ์ด ๋ ํจ์จ์ ์ด๋ผ๊ณ ํ๋จํ์ฌ ์ด์ ๋ํ ์์
์ ์ํํ์๋ค. ๊ฒ์๊ธ๊ณผ ๋๊ธ, ๋๋๊ธ์ ์ข์์๊ฐ ๊ฐ๋ฅํ๋๋ก ๊ตฌํ๋์ด ์๊ณ , ์ข์์์ ๋ํ collection ๋ํ ๋ถ๋ฆฌํด๋๊ณ , post์ comment๋ likeCount ํ๋๋ฅผ ๊ฐ์ง๊ณ ์์ด์, ์ข์์๊ฐ ๋ณ๊ฒฝ๋ ๋๋ง๋ค ์ฟผ๋ฆฌ๋ฅผ ํ์ง ์๋๋ก ํ์๋ค. ๐ DB collection ์ฐธ๊ณ https://s-organization-335.gitbook.io/meongnang Firebase DB ์ค๊ณ | ์ฑ๋ฅ ์ต์ ํ & ๊ธฐ์ ์ ์์ฌ๊ฒฐ์ ๐ค User Users FieldType ใด Following FieldType ใด Follower FieldType Follow ์ ๋ณด๋ฅผ User ํ
์ด๋ธ์์ ํ๋ฒ..
์ด๋ฒ ์ฃผ ๋ด๊ฐ ๊ตฌํํ ๊ธฐ๋ฅ?์ด๋ฒ์ฃผ์ฐจ๋์์, ๋ง์ ๊ธฐ๋ฅ๋ค์ ๊ตฌํํ์๋ค.์ ์ ํ๋กํ ์ ๋ณด ์์ฑ, ์์ ๊ณผ ์ ์ ํ๋ก์, ํ๋ก์ , ํฌ์คํธ CRUD์ ๋ํด ๊ตฌํ์ ํ์๋ค. ํด๋น ๊ธฐ๋ฅ์ ๊ตฌํํ๊ธฐ ์ํด, ์ด๋ค ๊ธฐ์ ์ ์์ฌ๊ฒฐ์ ์ ๊ฑฐ์ณค๋์ง?ํ๋ก์, ํ๋ก์์ ์ดํ ๊ตฌํํ ์ข์์ ๊ธฐ๋ฅ์ ๋ํด ๋ชจ๋ ์ ์ ์ ๊ด๋ จ์ด ์๊ณ ์ด๋ป๊ฒ ํด์ผ db๋ฅผ ์ข ๋ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํด์ผํ ์ง ์๊ฐํ๋ฉด์ collection์ ์ค๊ณํด๋ณด์๋๊ฒ๊ฐ๋ค. ์ฒ์์ ๋จ์ํ๊ฒ, ํ๋ก์, ํ๋ก์๋ฅผ ํ ๋ ์์ธก์ db์ ์ ์ฅํ๋ฉด ๋ด์
์ฅ์์ ๋จ์ํ ๋ก์ง์ผ๋ก ํธ๋ฆฌํ์ง๋ง ์๋ฒ ์
์ฅ์์ ๊ตณ์ด ์์ชฝ์ ์ ์ฅํด์ผํ๋? ์๋ฒ์ชฝ๋ ์๊ฐํด๋ณด๋ ์๊ฐ์ ๋ง์ด ๊ฐ์ง๋ ค๊ณ ํ๋๊ฒ ๊ฐ๋ค. ์ด์ฐจํผ ๊ทธ๋ผ ๋ชจ๋ ์ฟผ๋ฆฌ๋ฅผ ํด์ผํ๋๊ฒ์ ๊ทธ๊ฒ ๋ ๋นํจ์จ์ ์ด๊ธฐ์ ๊ฒฐ๊ตญ์ ์์ชฝ์ ์ ์ฅํ๊ธฐ๋ก ํ์๋ค. ๊ทธ๋ฆฌ๊ณ , lik..
๋ก๊ทธ์ธ ์ํ ์ ์ง ๋ก๊ทธ์ธ ์ํ ์ ์ญ ๊ด๋ฆฌfirebase๋ ๋ก๊ทธ์ธ์ด๋ ํ์๊ฐ์
์ ํ๋ฉด, ์ด์ ๊ฐ์ด user์ ๋ณด๋ฅผ ๋ฆฌํดํด์ค๋ค.์ด ์ ์ ์ ๋ณด๋ฅผ ํตํด ๋ก๊ทธ์ธ ์ํ์, ํ๋กํ, ๋ณธ์ธ์ ๊ฒ์๊ธ/๋๊ธ ์ฌ๋ถ๊ฐ์ ์์
๋ค์ ํ ๊ฒ์ด๋ฏ๋ก ์ ์ญ(zustand)์ผ๋ก user์ ๋ณด๋ฅผ ๊ด๋ฆฌํ๋ค.์ฒ์์ ์๋ก๊ณ ์นจ์ด ๋ฐ์ํด๋ ์ ์ญ ์ํ ์ด๊ธฐํ๊ฐ ๋ฐ์ํ์ง ์๋๋ก, zustand์ persist ๋ฏธ๋ค์จ์ด๋ฅผ ์ฌ์ฉํ์ฌ localStorage์ ๋ด์ ์ด ๋ก๊ทธ์ธ ์ํ(์ ์ ์ ๋ณด ์กด์ฌ ์ฌ๋ถ)๋ฅผ ์ ์ง๊ฐ ๋๋๋ก ํด์ผ๊ฒ ๋ค๊ณ ์๊ฐํ๋ค.ํ์ง๋ง, ์ฐพ์๋ณด๋ firebase ์ธ์ฆ ์์คํ
์ด ์ฌ์ฉ์์ ๋ก๊ทธ์ธ ์ํ๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํด, ์ธ์ฆ ํ ํฐ์ ์ฌ์ฉํ๊ณ ์ด ์ธ์ฆํ ํฐ์ ์๊ฐ์ด ์ฝ 1์๊ฐ ์ ๋์ด๊ธฐ ๋๋ฌธ์, ์ด ํ ํฐ์ด ๋ง๋ฃ๋๊ฑฐ๋ ๊ฐฑ์ ์ ์คํจํ๋ฉด ๋ก์ปฌ์คํ ๋ฆฌ์ง์๋ ๋ก๊ทธ์ธ์ํ์ด์ง๋ง..
์ด๋ฒ ์ฃผ ๋ด๊ฐ ๊ตฌํํ ๊ธฐ๋ฅ์ ?์ด๋ฒ์ฃผ์ ๋๋์ด ํ๋ก์ ํธ์ฃผ์ฐจ๊ฐ ์์๋์๋ค.์ด๋ฒ์ฃผ์ ํด์ผํ ์ผ์ ๋ค์๊ณผ ๊ฐ๋ค.1์ฃผ์ฐจํ๊ฒฝ ์ธํ
๋ฐ ์์ด์ด ํ๋ ์, ์ ์ ํ๋ก์ฐ ์์
ํ์ด์ง ๋ผ์ฐํ
์ค๊ณ๋ก๊ทธ์ธ/ํ์๊ฐ์
/์์
๋ก๊ทธ์ธ ๊ธฐ๋ฅ ๊ตฌํ์ปดํฌ๋ํธ ๋ฐ ๋ผ์ฐํธ์ ์ง์ฐ ๋ก๋ฉ ์ฝ 2.5์ผ์ ๋๊ฐ ์์ด์ดํ๋ ์๊ณผ ์ ์ ํ๋ก์ฐ๋ฅผ ๋ง๋ค๊ณ , github commit, issue, PR ์ธํ
๋ฐ ํ๋ก์ ํธ ๊ตฌ์กฐ์ ๋ผ์ฐํ
์ ์ค๊ณํ๋๋ฐ ์ฝ 3์ผ์ ๋ ๊ฑธ๋ฆฐ๊ฒ ๊ฐ๋ค. 4์ผ์ฐจ๋ถํฐ firebase๋ฅผ ์ด์ฉํ ์ด๋ฉ์ผ ํ์๊ฐ์
, ๋ก๊ทธ์ธ, ๊ตฌ๊ธ ๋ก๊ทธ์ธ์ ๊ตฌํํ์๋ค. ์ผ๋จ ๋ฉํ ๋๊ป ์ง๋ฌธ๋ ๋๋ฆฌ๊ธฐ ์ํด ๊ธฐ๋ฅ์ ๋จผ์ ๊ตฌํํ๊ฒ ๋์๋๋ฐ, ์์ง ์ต์์น ์๊ธฐ๋ ํ๊ณ , firebase๋ฅผ ์ฒ์ ์ฌ์ฉํ๋ค๋ณด๋ ๋ฌธ์๋ณด๋ฉด์ ํ
์คํธํด๋ณด๋ฉด์ ์ฝ๋๋ฅผ ์ง๋ค๋ณด๋ api๋ค์ ๋ค ์ปดํฌ๋ํธ ์์์ ์์ฑํ..
ํ ์คํฐ๋์์ ์ป์ ์ธ์ฌ์ดํธ๊ฐ ์๋ค๋ฉด ๋ฌด์์ธ๊ฐ์?์ด๋๋ง ์๊ณ ๋ฆฌ์ฆ ์ฃผ์ฐจ๊ฐ ๋๋๊ฒ๋์๋ค.์ด๋ฐ์ ๋ฌธ์ ๋์ด๋๋ ์ด๋ ต์ง ์์๊ณ , ์๊ฐ๋ ์ฌ์ ๋กญ๊ณ , ์์ง ์์๋ ๋์ณ์ ํ ๋ฌธ์ ๋ฅผ ๋ค์ํ ์ ๊ทผ๋ฐฉ์์ผ๋ก ํ์ด๋ณด๋ ค๊ณ ํ๊ธฐ๋ ํ๊ณ ,ํ์๋ค์๊ฒ ๋ณด์ฌ์ค ์ฝ๋๋ค ๋ณด๋ ์ฝ๋๊ฐ๋
์ฑ์ด๋ ๋ค์ด๋ฐ, ์ฃผ์์ ์ ๊ฒฝ์ ๋ง์ด์ผ๋๋ฐ์ ์ฐจ ๊ฐ์๋ก ์ง์น๊ณ ...์ด๋ ต๊ณ .. ํ๋ฃจ 8๋ฌธ์ ๋ฅผ ๋ชฉํ๋ก ๋ฌธ์ ํ๊ธฐ์ ๊ธ๊ธํ๋ค๋ณด๋, ์ ๋ต ๋ง์ถ๊ธฐ์๋ง ์ด์ ์ ๋ง์ท๋๊ฒ ๊ฐ๋ค...๊ทธ๋๋ 3์ฃผ๋ผ๋ ์งง์ ์๊ฐ๋ด์ ๋ง์ ์ฑ์ฅ์ ํด๋ธ๊ฒ ๊ฐ์ ๋ฟ๋ฏํ๋ค. ํ์ง๋ง, ํ๋ก์ ํธ ๊ธฐ๊ฐ๋ด์ ๋ด๊ฐ ๊ณผ์ฐ ๋ช๋ฌธ์ ๋ ๋ฌธ์ ๋ฅผ ํ์ด๋ณผ ์ ์์๊น ์ถ์๋ฐ.. ํ๋ก์ ํธ ๊ธฐ๊ฐ ํ๋ฌ๋ด์ ๊ธ์ธ ์ด ์๊ณ ๋ฆฌ์ฆ ์ ๊ทผ์ด๋ ๊ฐ์ ์์ด๋ฒ๋ฆด๊น๋ด ์ข ๊ฑฑ์ ๋๊ธฐ๋ ํ๋ค...๊ทธ๋๋ ์ผ๋จ ํ๋ก์ ํธ ๊ธฐ๊ฐ์ ์ทจ์
์ ๋ ๋ง์ง๋ง ํ๋ก์ ํธ๋ฅผ..
๐ ์ค๋ ์งํ๋ ๊ฐ์์์ ํ์ตํ ๋ด์ฉ์ ๋ฌด์์ธ๊ฐ์? ์ด๋๋ง ์ ๋ฒ์ฃผ์ ๋ชจ๋ ์๊ณ ๋ฆฌ์ฆ ์์
์ด ๋๋๊ณ , ์ค๋์ ์ฌํ ๋ฐฐ์ด๊ฒ๋ค์ ํ ๋๋ก ๋ฌธ์ ๋ฅผ ํ์ด๋ณด์๋ค.์ค๋์ ๋ฌธ์ ๋ค์ ์ด๋ ค์ํ๋ ๊ทธ๋ํ ํ์์ด๋, ๋ค์ต์คํธ๋ผ, DP๊ฐ์ ๋ฌธ์ ๋ ์์ด์ ์ด๋ ต์ง ์๊ฒ ํ ์ ์์๋ ๊ฒ ๊ฐ๋ค.์ ํํ๋ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ค์ ๋์ด๋๊ฐ ์ข ์์ด๋ ์ด๋์ ๋ ํ๋ฆฌ๋๊ฒ ๊ฐ์๋ฐ,๊ฐ์ธ์ ์ผ๋ก ํจํด์ ์ฐพ์์ผํ๋ ๊ทธ๋ฐ ๋ฌธ์ ๋ค์ด ๊ฐ์ฅ ์ด๋ ค์ด๊ฒ ๊ฐ๋ค. ๋ง์น ๋ณด๋๊ฒ์ํ ๋๋ ์ด๋ฐ๊ฑฐ ๋ชปํ๊ณ ์ซ์ดํ๋ ๋ ....ใ
ใ
๊ทธ๋ฆฌ๊ณ ์์ง 2์ฐจ์ ๋ฆฌ์คํธ๋ ์ข ๋ณต์กํ ๊ตฌํ๋ฌธ์ ๋ค์ ๋ณด๋ฉด ์ฝ๋๋ก ์ฎ๊ธฐ๋๊ฒ ์ฝ์ง ์์๊ฒ ๊ฐ๋ค.์ด๋ฐ ๊ตฌํ์์ญ์ ๊ทธ๋๋ ๋ฌธ์ ๋ฅผ ๊พธ์คํ ํ๋ค๋ณด๋ฉด ๊ทน๋ณต๋ ์ ์์ ๊ฒ ๊ฐ๋ค. ๐ ์ด๋ฒ ์ฃผ ์งํ๋ ํ ์คํฐ๋์์ ์ป์ ์ธ์ฌ์ดํธ๋ ๋ฌด์์ธ๊ฐ์?์ค๋ ๋ฉํ ๋ง์ ๋ด์ผ๋ก ..