๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ

    [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. ๋„ฅ์ŠคํŠธ ์„œ๋ฒ„..