# [[Next.js Framework]] ## ๐Ÿ“Œ Brief Summary Next.js๋Š” ๋น ๋ฅธ ์›น ์„ฑ๋Šฅ๊ณผ ๋‚ด์žฅ๋œ SEO ์ตœ์ ํ™” ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ˜ ๊ฐ€์žฅ ์ธ๊ธฐ ์žˆ๋Š” React ๊ธฐ๋ฐ˜ ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค [1, 2]. SSR(Server-Side Rendering), SSG(Static Site Generation), ISR(Incremental Static Regeneration) ๋“ฑ ๋‹ค์–‘ํ•œ ์„œ๋ฒ„ ์ธก ๋ Œ๋”๋ง ๋ฐฉ์‹์„ ์ œ๊ณตํ•˜์—ฌ ๊ฒ€์ƒ‰ ์—”์ง„ ๋ด‡์—๊ฒŒ ์ฆ‰๊ฐ์ ์œผ๋กœ ์™„์ „ํ•œ HTML์„ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•๋Š”๋‹ค [2, 3]. ์„ฑ๋Šฅ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์ง€์›ํ•˜๋ฏ€๋กœ ์ „์ž์ƒ๊ฑฐ๋ž˜, ๋ธ”๋กœ๊ทธ, ๋žœ๋”ฉ ํŽ˜์ด์ง€ ๋“ฑ์˜ Core Web Vitals ์ ์ˆ˜์™€ ๊ฒ€์ƒ‰ ์—”์ง„ ์ˆœ์œ„๋ฅผ ๋†’์ด๋Š” ๋ฐ ํƒ์›”ํ•˜๋‹ค [3, 4]. ## ๐Ÿ“– Core Content * **๋‹ค์–‘ํ•œ ๋ Œ๋”๋ง ์ „๋žต์˜ ํ†ตํ•ฉ ์ง€์›:** Next.js๋Š” `getServerSideProps` ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด ์š”์ฒญ๋งˆ๋‹ค ์„œ๋ฒ„์—์„œ HTML์„ ์ƒ์„ฑํ•˜๋Š” SSR, `getStaticProps`๋ฅผ ํ†ตํ•ด ๋นŒ๋“œ ํƒ€์ž„์— HTML์„ ์ƒ์„ฑํ•˜๋Š” SSG๋ฅผ ๋ชจ๋‘ ์ง€์›ํ•œ๋‹ค [5, 6]. ๋˜ํ•œ, ์บ์‹œ๋œ ์ •์  ํŽ˜์ด์ง€๋ฅผ ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์—…๋ฐ์ดํŠธํ•˜๋Š” ISR ๋ฐฉ์‹์„ ํ†ตํ•ด SSR์˜ ์ตœ์‹ ์„ฑ๊ณผ SSG์˜ ์†๋„(TTFB 20-50ms ์ˆ˜์ค€)๋ฅผ ๋™์‹œ์— ๋‹ฌ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค [6, 7]. ์ด๋Š” ํด๋ผ์ด์–ธํŠธ ์ธก ๋ Œ๋”๋ง ์ง€์—ฐ์„ ์—†์• ๊ณ  ๋น ๋ฅด๊ณ  ์™„์ „ํ•œ ํŽ˜์ด์ง€๋ฅผ ์‚ฌ์šฉ์ž ๋ฐ ํฌ๋กค๋Ÿฌ ๋ด‡์— ์ œ๊ณตํ•œ๋‹ค [2, 5]. * **Core Web Vitals ๋ฐ ์„ฑ๋Šฅ ์ตœ์ ํ™”:** Next.js๋Š” ๋ผ์šฐํŠธ ๊ธฐ๋ฐ˜ ์ฝ”๋“œ ์Šคํ”Œ๋ฆฌํŒ…(Code Splitting)์„ ์ž๋™์œผ๋กœ ์ˆ˜ํ–‰ํ•˜์—ฌ ๋ฌด๊ฑฐ์šด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฒˆ๋“ค์„ ๋ถ„ํ• ํ•˜๊ณ  ์ดˆ๊ธฐ ๋กœ๋”ฉ ์‹œ๊ฐ„์„ ์ค„์ธ๋‹ค [8]. ์ตœ์‹ ์˜ App Router์™€ Server Components๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํŽ˜์ด์ง€์˜ ์ •์ ์ธ ๋ถ€๋ถ„์— ๋Œ€ํ•ด ํด๋ผ์ด์–ธํŠธ๋กœ ์ „์†กํ•˜๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์–‘์„ '0'์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ์–ด INP(Interaction to Next Paint) ์ง€ํ‘œ ์ตœ์ ํ™”์— ๋†€๋ผ์šด ํšจ๊ณผ๋ฅผ ๋ฐœํœ˜ํ•œ๋‹ค [9]. * **๋‚ด์žฅ๋œ ์ด๋ฏธ์ง€ ์ตœ์ ํ™” (`next/image`):** ์ž์ฒด์ ์ธ ์ด๋ฏธ์ง€ ์ปดํฌ๋„ŒํŠธ์ธ `next/image`๋ฅผ ์ œ๊ณตํ•˜์—ฌ ์ด๋ฏธ์ง€๋ฅผ WebP์™€ ๊ฐ™์€ ์ตœ์‹  ํฌ๋งท์œผ๋กœ ์ž๋™ ๋ณ€ํ™˜ํ•˜๊ณ , ๊ธฐ๊ธฐ ํ•ด์ƒ๋„์— ๋งž์ถฐ ํฌ๊ธฐ๋ฅผ ์กฐ์ •ํ•˜๋ฉฐ, ์ง€์—ฐ ๋กœ๋”ฉ(Lazy loading)์„ ์ ์šฉํ•œ๋‹ค [10, 11]. ์ด๋Š” ์›น ์„ฑ๋Šฅ์˜ ์ฃผ์š” ์ง€ํ‘œ์ธ LCP(Largest Contentful Paint)์™€ CLS(Cumulative Layout Shift) ์ ์ˆ˜๋ฅผ ํฐ ํญ์œผ๋กœ ๊ฐœ์„ ํ•œ๋‹ค [9-11]. * **๊ฐ•๋ ฅํ•œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๋ฐ SEO ๋„๊ตฌ ๊ด€๋ฆฌ:** ๊ธฐ์กด React SPA์˜ ์•ฝ์ ์ด์—ˆ๋˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด `next/head` ์ปดํฌ๋„ŒํŠธ ๋˜๋Š” Metadata API๋ฅผ ์ œ๊ณตํ•˜์—ฌ ๋ผ์šฐํŠธ๋งˆ๋‹ค ๋™์ ์ธ ํƒ€์ดํ‹€๊ณผ Open Graph ํƒœ๊ทธ๋ฅผ ์ฃผ์ž…ํ•  ์ˆ˜ ์žˆ๋‹ค [3, 9, 12]. ๋˜ํ•œ `next-sitemap` ํŒจํ‚ค์ง€๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ณต์žกํ•œ ์„ค์ • ์—†์ด XML ์‚ฌ์ดํŠธ๋งต์„ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค [13]. ## ๐Ÿ”— Knowledge Connections - **Related Topics:** [[Server-Side Rendering (SSR)]], [[Core Web Vitals]], [[React SEO]], [[Interaction to Next Paint (INP)]] - **Projects/Contexts:** [[E-commerce Migration to Next.js]] (๊ธฐ์กด ์ˆœ์ˆ˜ CSR ๋ฐฉ์‹์˜ Create React App ์ „์ž์ƒ๊ฑฐ๋ž˜ ์‚ฌ์ดํŠธ๋ฅผ Next.js ISR๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜์—ฌ ์˜ค๊ฐ€๋‹‰ ํŠธ๋ž˜ํ”ฝ 70%, ๋งค์ถœ 75% ์ƒ์Šน์„ ๋‹ฌ์„ฑํ•œ ๋น„์ฆˆ๋‹ˆ์Šค ์ ์šฉ ์‚ฌ๋ก€ [10, 14]) - **Contradictions/Notes:** ์ „ํ†ต์ ์ธ ์ˆœ์ˆ˜ Client-Side Rendering(CSR) ๋ฐฉ์‹์€ ๊ฒ€์ƒ‰ ์—”์ง„ ๋ด‡์—๊ฒŒ ๋นˆ HTML ์…ธ์„ ๋ฐ˜ํ™˜ํ•˜์—ฌ ์ธ๋ฑ์‹ฑ์ด ์ง€์—ฐ๋˜๊ฑฐ๋‚˜ ์‹คํŒจํ•  ์œ„ํ—˜์ด ํฌ์ง€๋งŒ, Next.js์˜ SSR ๋ฐ SSG ๋ Œ๋”๋ง ๋ฐฉ์‹์„ ์ ์šฉํ•˜๋ฉด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰์— ์˜์กดํ•˜์ง€ ์•Š๊ณ ๋„ ๋ด‡์ด ์ฆ‰์‹œ ์ฝ˜ํ…์ธ ๋ฅผ ์ˆ˜์ง‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ทผ๋ณธ์ ์ธ ๊ตฌ์กฐ๋ฅผ ๊ฐœ์„ ํ•œ๋‹ค [2, 15, 16]. --- *Last updated: 2026-04-26*