์ค๋ช
ํ์ต์ ์์ด์ ์๋ง ๋ณด๊ณ ๋ฌ๋ฆฌ๋ ๊ฒ ๋ณด๋ค ๋ค๋ฅผ ๋์๋ณผ ๋ ์ค๋ ฅ ์์น์ด ๋ง์ด ์ผ์ด ๋๋ค. Next.js์ ํ๋ ์์ํฌ๋ฅผ ๋ฌด์กฐ๊ฑด ๋ฐ๋ผํ๋ฉฐ ์์ํ์ ๋๋ ๋์ํ ์ ์๋ค๋ ์ ์ ๋ํด์ ํฐ ์ค๋ ฅ์์น์ ์ป์ง๋ง ์ด๋ด ์์น์ด ๋๋ ๊ตฌ๊ฐ์ด ์ผ์ด๋๊ฒ ๋๋ค. ๊ทธ ์ด์ ๋ ๋์์ ๋์ง๋ง ํจ์จ์ ์ด์ง ์๋ค๋ ๋ป์ด๋ค. ๋๋ Next.js๋ก ๊ฐ๋ฐ์ ์์ ๋์ง 1๋ ์ด ๋๋ ์์ ์์ ๋ค์ ๊ฐ๋ ์ ์ก๊ฒ ๋๋ ์์์ ๋ฐ๊ฒฌํ์ฌ ๊ณต์ ํ๋ค.
์์์์ ์๊ฒ๋ ๋์ ์๋ก์ด ๊ด์ ์ Next.js๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์๋ฒ ์ฌ์ด๋ ๋๋๋ง(SSR)์ด๋ฉฐ ๋ช ์์ ์ผ๋ก ํด๋ผ์ด์ธํธ ์ฌ์ด๋ ๋๋๋ง(CSR)์ ์ง์ ํ ์ ์๋ค๋ ์ ์ด์๋ค. ๋๋ ๋ฌด์กฐ๊ฑด CSR๋ก ๊ฐ๋ฐ์ ๋ค ๋๋ ค ๋ฃ์ด์ fetch์ ๊ฐ์ ๋ฐ์ดํฐ ์ก ์์ ์ Server Action์ ์ฌ์ฉํ์ง ์์๋ ๊ฒ์ด๋ค. ๊ทธ๋ฆฌ๊ณ return value์ ๋ฏผ๊ฐ์ฑ์ ์๊ฐํ๋ฉฐ interface๋ฅผ ๋ง์ถ๋๋ผ ์๊ฐ์ ๋ง์ด ์ผ์ง๋ง ์๋ฒ์์๋ง ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ฉด ๊ทธ๋ด ์ผ์ด ์๋ ๊ฒ ์ด์๋ค.
Next.js๋ฅผ ์์ํ๋ ์ฌ๋๋ค์ด๊ฒ ๋ฌด์กฐ๊ฑด ์ถ์ฒํ๋ ๋ฐ์ด๋ค. ๋๋ React์ ์๋ฐ์คํฌ๋ฆฝํธ CSS๋ ๋ชจ๋ฅธ์ฑ๋ก ์ ๋ฌธํ์ฌ์ ์ฃผ๋ณ์ ๊ฐ์ ๋จน๋ค๊ฐ ๊ธฐ์ด๋ฅผ ๋์๋ณผ ์ ์๋ ์๊ฐ์ ๊ฐ์ง๋ฉด์ ๊ฐ๋ฐ์ ํ์๋๋ฐ ์ผ์ ๊ธฐ๊ฐ์ด ๋๋ฉด ํผ์๋ ธ ์ค์ตํ๋ค ์ด๋ก ์ ๊ณต๋ถํ๋ ํจํด์ ๊ฐ์ง ๋ฏ์ด ๋ญ๋ ๋ฐฐ์์ ์์ด์ ์ด ๋ฐฉ๋ฒ์ ์ ์ฉํ๋ฉด ๋น ๋ฅธ ์ค๋ ฅ์์น์ ๊ธฐ๋ํ ์ ์์ ๊ฒ์ด๋ค.
Server Action์์ Data ๊ฐฑ์ ๋ฒ
revalidatePath
Server Component์์ Client Component์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ์ ๋ค์ด๊ฐ๋ ๋ฐ์ดํฐ๋ User Client๋ก ์ค์ ํด์ผ ํ๋ค.
ํน์ง
- Next.js ๊ธฐ์ด ์ปจ์ ์ค๋ช
https://www.youtube.com/watch?v=vwSlYG7hFk0
- 29๊ฐ์ง ์ค์๋ฅผ ์๋ ค์ค
https://www.youtube.com/watch?v=5QP0mvrJkiY&t=2486s