์๋ ํ์ธ์~ ๋ธ๋ก๊น ์ ํ ๋๋ง๋ค ๊ณ ๋ฏผํ๋ ๋ด์ฉ์ด ์๋๋ฐ์. ์ด ๊ธ์ ์ฌ๋ ค๋ ๋ ๊น? ๋ถ์กฑํ ๋ถ๋ถ์ ์์๊น? ๋ธ๋ก๊ทธ์ ์ฌ๋ฆฌ๊ธฐ์ ์ข ๋ถ์กฑํ ๊ฒ ๊ฐ์๋ฐ.. ๋ ๊ฐ๋ค๋ฌ๊ณ ์ฌ๋ ค์ผ์ง!์ด๋ฐ ์๊ฐ๋ค์ ํ๊ฒ ๋๊ณ ๊ณ ๋ฏผ๋ง ํ๋ค๊ฐ ๋ธ๋ก๊ทธ์ ๋ชป์ฌ๋ฆฌ๋ ๋ฌธ์ ๊ฐ ๊ณ์ ๋ฐ์ํ๋๋ผ๊ตฌ์. ๊ทธ๋์ ๊ฒฐ์ฌํ์ด
์๋ ํ์ธ์! ๊ณ ์์ด์์.์ฒซ ๊ฐ๋ฐ ๊ธ์ด์, ์ค๋ ์๊ฐํด๋ณผ ์ฃผ์ธ๊ณต์ Zustand์ ๋๋ค. ๐ zustand๋ ์ต๊ทผ์ ์๊ฒ๋ ์ํ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ธ๋ฐ์. ์์ฃผ ์ฝ๊ณ ๊ฐ๋ ฅํฉ๋๋ค!
์๋ ํ์ธ์~๐ ๊ณ ์์ด์์. ์ค๋์ ์ ๋ง ์ ๋ง ๋น ๋ฅธ ๋ฒ๋ค๋ฌ์ธ Vite๋ฅผ ์๊ฐํ๋ ค๊ณ ํด์. SPA ๋ฑ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ํ๋ ์์ํฌ๋ฅผ ์ฐ๋ค๋ณด๋ฉด ์ ํ ์ฑ๋ฅ๊ณผ ํ์ผ ๊ด๋ฆฌ๋ฅผ ์ํด ์น ๋ฒ๋ค๋ฌ๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋๋ฐ์. ๊ฐ์ฅ ๋ณดํธ์ ์ผ๋ก webpack์ ๋ง์ด ์ฌ์ฉํ์ง๋ง webpack์ ๋จ์ ์ธ
์๋ ํ์ธ์~ HTML ์๋ฆฌ๋จผํธ๋ฅผ ๋ง์ฐ์ค๋ก ์ฎ๊ธฐ๋ ๋ฐฉ๋ฒ์ ์ ์ด๋ณผ๊ฒ์~๋๋๊ทธ๋ ํด๋ฆญ์์, ์ด๋, ํด๋ฆญ๋ 3๋จ๊ณ๋ก ์ด๋ค์ง๋๋ฐ์. ์ด๋ฅผ ์ด๋ฒคํธ ํจ์๋ก ๋ฑ๋กํด์ ๋๋๊ทธ๋ฅผ ์ ์ดํ ์ ์์ด์.๋จ ์ฃผ์ํ ์ ์ ๋ง์ฐ์ค์ ํฐ์น ์ด๋ฒคํธ์ ์์ฑ์ด ์กฐ๊ธ ๋ค๋ฅด๋ค๋ ๊ฑด๋ฐ์. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด
์๋ ํ์ธ์~ ๐์ค๋์ npm์ ๋๋ง์ ํจํค์ง๋ฅผ ๋ฐฐํฌํด๋ณธ ํ๊ธฐ๋ฅผ ์ ์ด๋ณผ๊ฒ์.npm ๋ก๊ณ npm์ Node Package Manager์ ์ค์๋ง๋ก ๋ ธ๋ํ๊ฒฝ์์ ์ฌ์ฉํ ์ ์๋ ์๋ฐ์คํฌ๋ฆฝํธ ํจํค์ง๋ค์ ๊ด๋ฆฌํด์ฃผ๋ ํ๋ก๊ทธ๋จ์ด์์.์ ๋ ์ฌ์ด๋ ํ๋ก์ ํธ๋ก ์ธ๋งํ ํ๋ก๊ทธ๋จ๋ค์ ๋ง๋ค์ด
์ค๋์ ๋ฆฌ์กํธ๋ก ์ฝ์ง.. ํ ๊ธฐ๋ก์ ๊ฐ๋จํ๊ฒ ์ ์ด๋ณด๋ ค๊ณ ํด์.๋ฆฌ์กํธ๋ฅผ ์ฌ์ฉํ๋ฉด ์๋ง ๋๋ถ๋ถ ํจ์ํ ์ปดํฌ๋ํธ๋ฅผ ๋ ๋ง์ด ์ฌ์ฉํ์คํ ๋ฐ์. ํจ์ํ์ ์๋ ์ฌ๋ฌ๊ฐ์ง ์ฅ์ ์ค ํ๋๋ useEffect๊ฐ ์๋๊น ์ถ์ด์.useEffect์ depenency array๋ฅผ ํ์ฉํ๋ฉด ์ปด
์๋ ํ์ธ์~ ๊ณ ์์ด์์. ๐์ค๋์ next.js ๊ฐ๋ฐ์ค์ ๊ฒช์ ์ฝ์ง์ ์ ์ด๋ณด๋ ค๊ณ ํด์.Next.js๋ SSG, SSR, CSR์ ๋ชจ๋ ์ง์ํ๋ ์ ๋ง ์งฑ์งฑํ FE ํ๋ ์์ํฌ์์.โจSSG๋ Static Site Generation ์ด๋ผ๊ณ ํด์, ์ ์ ํ์ด์ง๋ฅผ ๋น๋ํ์๋
์ธ์ฌ ์๋ ํ์ธ์~ ๊ณ ์์ด์์~ ๐ ์ค๋์ ์์ฆ ํซํ yarn berry๋ฅผ ์๊ฐํ๊ณ ์ ์ฉํด๋ณด๋ ค๊ณ ํด์. yarn berry๋ ๊ฐ๋ฐ์ ๊ฒฝํ(DX)์ ๋์ฌ์ฃผ๋ ์์ฃผ ํ๋ฅญํ ๋๊ตฌ์์. DX๊ฐ ์์น๋๋ฉด ๊ฐ๋ฐ ํจ์จ์ด ๋์์ง๊ณ ์ด๋ ์์ฐ์ฑ ํฅ์์ ํฐ ๋์์ด ๋ ์ ์์ด์. ๊ฐ๋จํ์ง๋ง ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ด๋ ๊ผญ ์ฌ์ฉํด๋ณด์ธ์~! yarn berry yarn berry๋? y...
๐ ์ธ์ฌ ์๋ ํ์ธ์~ ๊ณ ์์ด์์. ๋ ์ค๋๋ง์ ํฌ์คํธ๋ฅผ ์ฐ๋ค์. ์์ฃผ ์จ์ผํ๋๋ฐ ๋ธ๋ก๊ทธ์ ํต ๊ด์ฌ์ ๋ชป๊ฐ์ก๋ค์. ๋ฐ์๊ธฐ๋ํ๊ณ ๊ทธ๋ด์ธํ๊ฒ ์ธ๊ฒ๋ค์ ์ฐพ๋๋ผ ์๊ฐ์ด ํ์ฉ ์ง๋ฌ์ด์. ์ค๋์ ์งง๊ฒ ๊ธ์ ์์ฑํด๋ณผ๊ฒ์~ ์ค๋ ์๊ฐํ ๊ฒ? RSC์ RHF, Zod๋ฅผ ์๊ฐํ ๊นํด์.
์๋ ํ์ธ์~ ๐ ์์ ์ ์์ฑํด๋์๋ ๋ฆฌ์กํธ ๋ค๋ก๊ฐ๊ธฐ ์ ์ด ๋ฌธ์์ธ๋ฐ ์ด์ ์ผ ์ฌ๋ฆฌ๋ค์. ์ฐธ๊ณ ํ์ ์ ์ข์ ๋ฆฌ์กํธ ์ฑ์ ๋ง๋์๊ธธ ๋ฐ๋์~์ด์ ํ์ด์ง๋ก ์ ๊ทผ์ ๋ง์์ผํ ๋ (ํธ๋์ญ์ ์คํ ํ์ด์ง, ํ๋ฒ๋ง ๋ ธ์ถ๋์ด์ผํ๋ ํ์ด์ง ๋ฑ)๋ค๋ก๊ฐ๊ธฐ(๋ฐฑ๋ฒํผ)๋ก UI๋ฅผ ์ ์ดํ ๋ (๋ชจ๋ฌ,
ํ์ฌ์์ ํ๋ก ํธ์๋ ์ผ ์๊ฐ์ ๋ฐํํ๋ ๋ด์ฉ์ ๊ฐ์ ธ์์ต๋๋ค. ์ฌ๋ฏธ์๊ฒ? ์ฝ์ด์ฃผ์ธ์~์ข์ ์ฝ๋๋ ์ด๋ค ์ฝ๋์ผ๊น์? ์ฐ๋ฆฌ๋ ์ฝ๋๋ฅผ ์ฝ์ผ๋ฉฐ ํ๋ก๊ทธ๋จ์ ์ดํดํฉ๋๋ค. ํ๋ก๊ทธ๋จ์ ํ๋์ ์ฑ ์ด๋ผ๊ณ ์๊ฐํด๋ด ์๋ค. ๋ง์ฝ ์ฑ ์ ์ด์ผ๊ธฐ ์์๊ฐ ๋ค์ฃฝ๋ฐ์ฃฝ ์์ฌ์๊ณ ์ด๋ ค์ด ์ฉ์ด๋ค๋ก ๊ฐ๋ํ๋ค๋ฉด
# ์ธ์ฌ ์๋ ํ์ธ์~ ์์ฆ ์ง์ ๊ฐ๋ฅํ ๊ฐ๋ฐ์ ํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผํ ๊น ๊ณ ๋ฏผํด๋ดค์ด์. ์ ๋ 6๋ ์ ๋ ๊ฐ๋ฐ์ ํด์์ด์. ์ผ์ ์ด์ฌํ ํ๋ค๋ณด๋ฉด ์ฒ์์ ๊ด์ฐฎ์๋ฐ ๋ชฐ์ ์ด ๊ณ์ ์ง์๋๋ฉด ๋ชธ๊ณผ ๋ง์์ด ์ง์ณ๋ฒ๋ฆฌ๋๋ผ๊ตฌ์. ๋ชฐ์ ์ ํ๋ฌ, ๋๋ฌ, ๊ธธ๊ฒ๋ ์๋ , ์์ญ๋ ์ ํ ์์์๊น์?
์ฌ์ด๋ ํ๋ก์ ํธ๋ก ๊ฐ๋จํ ์ฑํ ์ฑ์ ๋ง๋ค๊ณ ์์๋ค. ์ฑํ ์ฑ์ ๋ฐฑ์๋๋ฅผ ์น์์ผ์ผ๋ก ๋ง๋ค์ด์ค์ผํด์ ํ์์ ์ผ๋ก ์๋ฒ ์ฝ๋๊ฐ ํ์ํ๋ค. ๊ทธ๋ฐ๋ฐ ๋ฐฑ์๋ ๋ฆฌํฌ๋ฅผ ๋ฐ๋ก ๊ด๋ฆฌํ๊ธฐ์๋ ๋ฒ๊ฑฐ๋ก์ธ ๊ฒ ๊ฐ์์ ํ๋์ ๋ฆฌํฌ์งํ ๋ฆฌ์์ ๊ด๋ฆฌํ๊ณ ์ถ์๋ค.client/main.tsxserver/ind