๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ
[Next.js] app router - ๋ฐ์ดํฐ ํ์นญ
ํ ์ ํฌ๊ธฐ๋ก ์๋ผ๋จน๋ Next.js ํ์ต์ ๋ฆฌ์ฉ์ ๋๋ค. 4.1) ์ฑ ๋ผ์ฐํฐ์ ๋ฐ์ดํฐ ํ์นญ Page Router์ ๋ฐ์ดํฐ ํ์นญParge Router์์๋ ์๋ฒ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ํ์นญํ๊ธฐ ์ํด์ ํน์ ํจ์๋ค์ ์ฌ์ฉํ๋ค.(GetServerSideProps, GetStaticProps, GetStaticPath ๋ฑ) ์ ํจ์๋ค์์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ page component์ ๋ฐ์ดํฐ๋ฅผ Props๋ก ์ ๋ฌํด์ฃผ์๋ค.page router์์๋ ๋ชจ๋ ์ปดํฌ๋ํธ๊ฐ ํด๋ผ์ด์ธํธ ์ปดํฌ๋ํธ ์ด๊ธฐ ๋๋ฌธ์ page component ์ญ์ ๋ธ๋ผ์ฐ์ ์์ ๋ค์ ์คํ๋๊ธฐ ๋๋ฌธ์ ์ ๋ฌํ ํจ์๋ค์ page component์ ์์ฑํ ์ ์์๋ค.page router์ data fetching์ ๋จ์ ํ์ด์ง ์ปดํฌ๋ํธ์๊ฒ๋ง ๋ฐ์ดํฐ๊ฐ props..
[Next.js] App Router - ๋ค๋น๊ฒ์ดํ
ํ ์ ํฌ๊ธฐ๋ก ์๋ผ๋จน๋ Next.js ํ์ต์ ๋ฆฌ์ฉ์ ๋๋ค. 3.6) ํ์ด์ง ๋ผ์ฐํฐ ์ ๋ฆฌ3.6 ๋ค๋น๊ฒ์ดํ Page Router์์์ ๋ค๋น๊ฒ์ดํ 1. ํ์ด์ง ์์ฒญ2. ๋ฅ์คํธ ์๋ฒ๋ก๋ถํฐ ์ด๋ํ ํ์ด์ง์ ํ์ํ ๋ชจ๋ ์ปดํฌ๋ํธ๋ค์ด ํฌํจ๋ JS Bundle ํ์ผ ๋ฐ์3. Bundle ํ์ผ์ ๋ธ๋ผ์ฐ์ ์ฐจ์์์ ์คํ4. ํ์ฌ ํ์ด์ง์ ๋ง๋๋ก ์ปดํฌ๋ํธ ๊ต์ฒด JS Bundle ์์ฑ์ด ์ค๋๊ฑธ๋ฆฐ๋ค๋ฉด ์ด๋๊ฐ๋ฅํ ํ์ด์ง์ Bundle์ ๋ฏธ๋ฆฌ ๋ถ๋ฌ์ค๋ ํ๋ฆฌํ์นญ(Pre-Fetching) ๊ธฐ๋ฅ๋ ์ํ๊ฐ๋ฅApp Router์์์ ๋ค๋น๊ฒ์ดํ page router์ ํฌ๊ฒ ๋ค๋ฅด์ง ์๋ค.์๋ฒ ์ปดํฌ๋ํธ๊ฐ ์ถ๊ฐ๋์๊ธฐ ๋๋ฌธ์ ์ด ๋ถ๋ถ์ ์ํ ์ค์ํ ์ฐจ์ด์ ์ด ์กด์ฌํ๋ค.1. ํ์ด์ง ์์ฒญ2. ๋ฅ์คํธ ์๋ฒ๋ก๋ถํฐ JS Bundle ํ์ผ ๋ฐ์ -> Client Com..
[Next.js] ๋ฆฌ์กํธ ์๋ฒ ์ปดํฌ๋ํธ
ํ ์ ํฌ๊ธฐ๋ก ์๋ผ๋จน๋ Next.js ํ์ต์ ๋ฆฌ์ฉ์ ๋๋ค. 3.4) ๋ฆฌ์กํธ ์๋ฒ ์ปดํฌ๋ํธ ์ดํดํ๊ธฐ3.5) ๋ฆฌ์กํธ ์๋ฒ ์ปดํฌ๋ํธ ์ฃผ์์ฌํญ3.4 ๋ฆฌ์กํธ ์๋ฒ ์ปดํฌ๋ํธ ์ดํดํ๊ธฐ๋ฆฌ์กํธ ์๋ฒ ์ปดํฌ๋ํธ๋?- ๋ฆฌ์กํธ 18 ๋ฒ์ ๋ถํฐ ์๋กญ๊ฒ ์ถ๊ฐ๋ ์๋ก์ด ์ ํ์ ๋ฆฌ์กํธ ์ปดํฌ๋ํธ- ์๋ฒ ์ธก์์๋ง ์คํ๋๋ ์ปดํฌ๋ํธ์ด๋ค. ๋ฆฌ์กํธ ์๋ฒ ์ปดํฌ๋ํธ๊ฐ ๋ํ๋๊ฒ๋ ๋ฐฐ๊ฒฝPage router์์์ ์ฌ์ ๋ ๋๋ง์ ๋ค์ ๋ ์ฌ๋ ค๋ณด๋ฉด ํ์ด๋๋ ์ด์ (ํ๋ฉด์ ์ํธ์์ฉ์ ์ถ๊ฐ)์ ์ํด ์๋ฒ๋ ๋ชจ๋ JS ํ์ผ๋ค์ ๋ฌถ๋ ๋ฒ๋ค๋ง์ ์งํํ๊ณ ๋ธ๋ผ์ฐ์ ์๊ฒ ๋ฒ๋คํ์ผ์ด ์ ๋ฌํ๋ค๊ณ ํ๋ค.ํ์ง๋ง ์ํธ์์ฉ์ด ํ์ํ์ง ์์ ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ ๋ํ ๋ฒ๋ค์ ํฌํจ๋ ํ์๋ ์๋ค. ์๋ํ๋ฉด ํ์์ผ๋ก JS ๋ฒ๋ค ๊ณผ์ ์ ์งํํ๊ธฐ ์ ์ ์๋ฒ๋ ์ฌ์ ๋ ๋๋ง์ ํตํด ์ปดํฌ๋ํธ๋ฅผ ์์ฑํ๊ธฐ ..
[Next.js] App Router - ๋ ์ด์์
ํ ์ ํฌ๊ธฐ๋ก ์๋ผ๋จน๋ Next.js ํ์ต์ ๋ฆฌ์ฉ์ ๋๋ค. 3.3) ๋ ์ด์์ ์ค์ ํ๊ธฐ3.3 ๋ ์ด์์ ์ค์ ํ๊ธฐRoot Layoutsrc/app/layout.tsx ์์ ์ค์ ํ ์ ์์ผ๋ฉฐ, ์ด ๋ฃจํธ ๋ ์ด์์์ ํ์ ๋ชจ๋ ํ์ด์ง ์ปดํฌ๋ํธ์ ๋ ์ด์์์ผ๋ก ์ ์ฉ๋๋ค. ํ์ด์ง๋ณ Layoutappโโโ layout.tsxโโโ page.tsxโโโ search โโโ layout.tsx โโโ page.tsx์ด๋ฐ์์ผ๋ก search ๊ฒฝ๋ก์๋ layout.tsx๊ฐ ์กด์ฌํ๋ค๋ฉด, root layout์ ๋ฎ๋ ๊ฒ์ด ์๋ ์ค์ฒฉ์ผ๋ก Layout์ด ์ ์ฉ๋๋ค.๋ฐ๋ผ์ Root Layout > search/layout.tsx > search/page.tsx ์์ผ๋ก ๋ ๋๋ง์ด ๋๋ค. Layout ์ค์ ์ฃผ์์ฌํญexport default..
[Next.js] App Router - ํ์ด์ง ๋ผ์ฐํ
ํ ์ ํฌ๊ธฐ๋ก ์๋ผ๋จน๋ Next.js ํ์ต์ ๋ฆฌ์ฉ์ ๋๋ค. 3.2) ํ์ด์ง ๋ผ์ฐํ ์ค์ ํ๊ธฐ3.2 ํ์ด์ง ๋ผ์ฐํ ์ค์ ํ๊ธฐPage Router vs App Router๊ณตํต์ - ํด๋๊ธฐ๋ฐ ํ์ด์ง ๋ผ์ฐํ ์ด ๊ฐ๋ฅํ๋ค.์ฐจ์ด์ - Page Router : ํน์ ํด๋ ์์ index.tsx๊ฐ ํ์ด์ง ์ปดํฌ๋ํธ ์ญํ , ๊ฒฝ๋ก.tsx(ex. search.tsx) ์ญ์ ํ์ด์ง ๊ฒฝ๋ก(/search)๋ก ๊ตฌ๋ถ ๊ฐ๋ฅ- App Router : page.tsx๊ฐ ํ์ด์ง ์ปดํฌ๋ํธ ์ญํ ์ ํจ, ๋ฌด์กฐ๊ฑด page.tsx๋ก ํ์ด์ง ์ปดํฌ๋ํธ๋ฅผ ์ง์ ํ ์ ์๊ธฐ ๋๋ฌธ์ ๊ฒฝ๋ก ํด๋๊ฐ ํ์ App Router์ query string ๋ฐ์์ค๊ธฐApp Router์์๋ ํ์ด์ง ์ปดํฌ๋ํธ์๊ฒ ์๋์ผ๋ก ์ ๋ฌ์ด ๋๋ Props์๋ ์ฟผ๋ฆฌ ์คํธ๋ง์ด๋ URL ํ๋ผ๋ฏธํฐ์ ๊ฐ์ ๊ฐ..
[Next.js] Page Router ์ฅ๋จ์
ํ ์ ํฌ๊ธฐ๋ก ์๋ผ๋จน๋ Next.js ํ์ต์ ๋ฆฌ์ฉ์ ๋๋ค. 2.21) ํ์ด์ง ๋ผ์ฐํฐ ์ ๋ฆฌPage router ์ฅ์ 1. ํ์ผ ์์คํ ๊ธฐ๋ฐ์ ๊ฐํธํ ํ์ด์ง ๋ผ์ฐํ ์ ๊ณต - pages ํด๋์ ๊ตฌ์กฐ ๊ธฐ๋ฐ ๋ผ์ฐํ - ๋์ ๊ฒฝ๋ก - Catch All Segment - Optional Catch All Segment 2. ๋ค์ํ ๋ฐฉ์์ ์ฌ์ ๋ ๋๋ง ์ ๊ณต - SSR : ์์ฒญ์ ๋ฐ์ ๋๋ง๋ค ๋งค๋ฒ ์๋กญ๊ฒ ํ์ด์ง ์์ฑ -> ํญ์ ์ต์ ๋ฐ์ดํฐ ๋ณด์ฅ - SSG : ๋น๋ํ์์ ํ์ด์ง ์์ฑ - ISR : revalidate๋ฅผ ํตํ ํ์ด์ง ์ฌ์์ฑ - On-Demand ISR : ํ์ด์ง ์ฌ์์ฑ ํธ๋ฆฌ๊ฑฐPage router ๋จ์ 1. ํ์ด์ง๋ณ ๋ ์ด์์ ์ค์ ์ด ๋ฒ๊ฑฐ๋กญ๋ค.type NextPageWithLayout..
[Next.js] Page Router - ISR
ํ ์ ํฌ๊ธฐ๋ก ์๋ผ๋จน๋ Next.js ํ์ต์ ๋ฆฌ์ฉ์ ๋๋ค. 2.17) ISR 1. ์๊ฐ ๋ฐ ์ค์ต2.18) ISR 2. ์ฃผ๋ฌธํ ์ฌ ๊ฒ์ฆ2.17 ISR 1. ์๊ฐ ๋ฐ ์ค์ตISR์ด๋?ISR (Incremental Static Regeneration : ์ฆ๋ถ ์ ์ ์ฌ์์ฑ)SSG ๋ฐฉ์์ผ๋ก ์์ฑ๋ ์ ์ ํ์ด์ง๋ฅผ ์ผ์ ์๊ฐ์ ์ฃผ๊ธฐ๋ก ๋ค์ ์์ฑํ๋ ๊ธฐ์ ๊ธฐ์กด SSG ๋ฐฉ์์์๋ ๋น๋ ํ์์ ๋ฏธ๋ฆฌ ์์ฑํ ํ์ด์ง๊ฐ ์ด ์๊ฐ ์ดํ์๋ ๋ค์ ์์ฑ๋์ง ์๊ธฐ ๋๋ฌธ์ ํ์ด์ง๋ฅผ ๋ค์ ์์ฒญํด๋ ๋์ผํ ํ์ด์ง๋ง ๊ณ์ ๋ฐํ๋์๋๋ฐ, ISR ๋ฐฉ์์ผ๋ก ํ์ด์ง๋ฅผ ๋ค์ ์์ฑํจ์ผ๋ก์จ ์๋ก์ด ์์ฒญ์ด ๋ฐ์ํ์ ๋ ์๋ก ์์ฑ๋ ํ์ด์ง๋ฅผ ๋ณด์ฌ์ค ์ ์๋ค. ISR์ ์ฅ์ 1. ๋ฏธ๋ฆฌ ์์ฑํด๋ ์ ์ ํ์ด์ง๋ฅผ ์๋ตํ๊ธฐ ๋๋ฌธ์ ๋งค์ฐ ๋น ๋ฅธ ์๋๋ก ๋์ํ๋ค. (SSG์ ์ฅ์ ..
[Next.js] page router - SSG(์ ์ ์ฌ์ดํธ ์์ฑ)
ํ ์ ํฌ๊ธฐ๋ก ์๋ผ๋จน๋ Next.js ํ์ต์ ๋ฆฌ์ฉ์ ๋๋ค. 2.13) SSG 1. ์๊ฐ ๋ฐ ์ค์ต2.14) SSG 2. ์ ์ ๊ฒฝ๋ก์ ์ ์ฉํ๊ธฐ2.15) SSG 3. ๋์ ๊ฒฝ๋ก์ ์ ์ฉํ๊ธฐ2.16) SSG 4. ํด๋ฐฑ์ต์ ์ค์ ํ๊ธฐ2.13 SSG 1. ์๊ฐ ๋ฐ ์ค์ตSSR์ ์ฅ๋จ์ ์ฅ์ : ๋ธ๋ผ์ฐ์ ์ ์ ์ ์์ฒญ์ด ๋ค์ด์ฌ ๋๋ง๋ค ์ฌ์ ๋ ๋๋ง ๊ณผ์ ์์ ๋ฐฑ์๋ ์๋ฒ์์ ์๋ก์ด ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๋ฉด์ ํ์ด์ง ๋ด๋ถ์ ๋ฐ์ดํฐ๋ฅผ ํญ์ ์ต์ ๋ฒ์ ์ผ๋ก ์ ์งํ ์ ์์๋จ์ : ๋ฐ์ดํฐ ํ์นญ์ด ๋๋ฌด ๋๋ฆฌ๊ฒ ๋๋ฉด ์ฌ์ฉ์ ๊ฒฝํ์ด ์์ข์์ง๋ค.SSG(์ ์ ์ฌ์ดํธ ์์ฑ)๋SSR์ ๋จ์ ์ ํด๊ฒฐํ ์ ์๋ ์ฌ์ ๋ ๋๋ง ๋ฐฉ์.๋น๋ ํ์์ ๋ฏธ๋ฆฌ ํ์ด์ง๋ฅผ ์ฌ์ ๋ ๋๋ง ํ๋ ๋ฐฉ๋ฒ(ํ์ด์ง๋ฅผ ๋ฏธ๋ฆฌ ๋ฑ ํ ๋ฒ ์์ฑํ๋ค)SSG์ ์ฅ๋จ์ ์ฅ์ : ์ฌ์ ๋ ๋๋ง ๊ณผ์ ์ ๋ง์ ์๊ฐ..
[Next.js] page router - SSR
ํ ์ ํฌ๊ธฐ๋ก ์๋ผ๋จน๋ Next.js ํ์ต์ ๋ฆฌ์ฉ์ ๋๋ค. 2.11) SSR 1. ์๊ฐ ๋ฐ ์ค์ต2.12) SSR 2. ์ค์ตgetServerSidePropsgetServerSideProps๋ ํ์ด์ง๊ฐ SSR ๋ฐฉ์์ผ๋ก ์ฌ์ ๋ ๋๋ง์ด ์ด๋ฃจ์ด์ง๊ฒ ํ๋ค.export const getServerSideProps = () => { // ์ปดํฌ๋ํธ๋ณด๋ค ๋จผ์ ์คํ๋์ด์, ์ปดํฌ๋ํธ์ ํ์ํ ๋ฐ์ดํฐ ๋ถ๋ฌ์ค๋ ํจ์ const data = "hello"; return { props: { data, }, };};getServerSideProps๋ ์ฝ์๋ ์ด๋ฆ์ ํจ์์ธ๋ฐ ์ด๋ฅผ exportํ๋ฉด ํด๋น ํ์ด์ง๋ ๊ทธ๋๋ถํฐ SSR๋ก ๋์ํ๊ฒ ๋๋ค. ์ด๋ป๊ฒ ์๋ํ๋๊ฐ1. ํด๋น ํ์ด์ง ๊ฒฝ๋ก๋ก ํ์ด์ง๋ฅผ ์์ฒญ2. ๋ฅ์คํธ ์๋ฒ..