# [[Next.js SSR Implementation]] ## πŸ“Œ Brief λΈŒμš” Next.js SSR(Server-Side Rendering) κ΅¬ν˜„μ€ λΈŒλΌμš°μ € μš”μ²­ μ‹œ μ„œλ²„μ—μ„œ μ½˜ν…μΈ μ™€ 데이터λ₯Ό 사전에 패칭(fetch)ν•˜μ—¬ μ™„μ „ν•œ ν˜•νƒœμ˜ HTML을 μƒμ„±ν•œ λ’€ ν΄λΌμ΄μ–ΈνŠΈμ—κ²Œ μ „λ‹¬ν•˜λŠ” λ Œλ”λ§ λ°©μ‹μž…λ‹ˆλ‹€ [1, 2]. μ΄λŠ” 기본적으둜 ν΄λΌμ΄μ–ΈνŠΈ μ‚¬μ΄λ“œ λ Œλ”λ§(CSR)을 μ‚¬μš©ν•˜λŠ” React μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ 검색 μ—”μ§„ 크둀링에 μ·¨μ•½ν•˜κ³  초기 λ Œλ”λ§ 속도가 느린 단점을 κ·Ήλ³΅ν•˜κΈ° μœ„ν•΄ μ‚¬μš©λ©λ‹ˆλ‹€ [3-5]. Next.js SSR은 SEOλ₯Ό κ·ΉλŒ€ν™”ν•˜κ³  Core Web Vitals의 핡심 μ§€ν‘œμΈ LCP(Largest Contentful Paint)λ₯Ό λ‹¨μΆ•ν•˜λŠ” λ“± ν˜„λŒ€ μ›Ή μ•„ν‚€ν…μ²˜ μ„±λŠ₯ μ΅œμ ν™”μ— μ€‘μš”ν•œ 역할을 ν•©λ‹ˆλ‹€ [2, 6]. ## πŸ“– Core Content * **SSR κ΅¬ν˜„ 방식 (getServerSideProps):** Next.jsμ—μ„œ SSR을 κ΅¬ν˜„ν•˜λŠ” κ°€μž₯ λŒ€ν‘œμ μΈ 방법은 `getServerSideProps` 비동기 ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€ [2, 6]. 이 ν•¨μˆ˜ λ‚΄μ—μ„œ API 등을 톡해 μ„œλ²„ μΈ‘μ—μ„œ ν•„μš”ν•œ 데이터λ₯Ό 미리 뢈러온(fetch) ν›„, νŽ˜μ΄μ§€ μ»΄ν¬λ„ŒνŠΈμ˜ `props`둜 μ „λ‹¬ν•©λ‹ˆλ‹€ [6]. 이λ₯Ό 톡해 μžλ°”μŠ€ν¬λ¦½νŠΈ μ‹€ν–‰ λŒ€κΈ° μ‹œκ°„ 없이 μ½˜ν…μΈ κ°€ μ¦‰μ‹œ μ±„μ›Œμ§„ HTML λΌˆλŒ€λ₯Ό ν΄λΌμ΄μ–ΈνŠΈμ— 전솑할 수 μžˆμŠ΅λ‹ˆλ‹€ [2, 6]. * **SEO (검색 μ—”μ§„ μ΅œμ ν™”) 효과:** 전톡적인 React CSR 앱은 μžλ°”μŠ€ν¬λ¦½νŠΈκ°€ μ‹€ν–‰λ˜κΈ° μ „κΉŒμ§€ 빈 HTML 셸을 μ œκ³΅ν•˜λ―€λ‘œ, Googlebotκ³Ό 같은 검색 μ—”μ§„ ν¬λ‘€λŸ¬κ°€ μ½˜ν…μΈ λ‚˜ 메타데이터λ₯Ό μ¦‰κ°μ μœΌλ‘œ μΈμ‹ν•˜λŠ” 데 어렀움이 μžˆμŠ΅λ‹ˆλ‹€ [3, 7]. Next.js SSR을 μ μš©ν•˜λ©΄ 검색 μ—”μ§„ 봇이 μžλ°”μŠ€ν¬λ¦½νŠΈ μ‹€ν–‰ 없이도 메타데이터, κ΅¬μ‘°ν™”λœ 데이터, μ‹€μ œ μ½˜ν…μΈ κ°€ λͺ¨λ‘ ν¬ν•¨λœ μ™„μ „ν•œ HTML을 μˆ˜μ‹ ν•˜κ²Œ λ˜λ―€λ‘œ, 크둀링 및 인덱싱 효율이 졜우수(Excellent) λ“±κΈ‰μœΌλ‘œ ν–₯μƒλ©λ‹ˆλ‹€ [2, 8]. * **μ„±λŠ₯ μ΅œμ ν™” 및 Core Web Vitals:** Next.js SSR λ„μž…μ€ ν”„λ‘ νŠΈμ—”λ“œ μ„±λŠ₯ μ΅œμ ν™”μ™€ Core Web Vitals 달성에 크게 κΈ°μ—¬ν•©λ‹ˆλ‹€. ν΄λΌμ΄μ–ΈνŠΈ 츑의 λ Œλ”λ§ 지연을 μ œκ±°ν•¨μœΌλ‘œμ¨ μ΅œλŒ€ 1,000ms의 LCP(Largest Contentful Paint) 속도 ν–₯상을 κΈ°λŒ€ν•  수 μžˆλŠ” κ³ κΈ‰ μ΅œμ ν™” μ „λž΅μž…λ‹ˆλ‹€ [6, 9]. λ‹€λ§Œ, 데이터가 ν¬ν•¨λœ μ™„μ „ν•œ HTML이 μ‚¬μš©μžμ—κ²Œ 처음 λ³΄μ—¬μ§€λŠ” FCP(First Contentful Paint)λŠ” λΉ λ₯΄μ§€λ§Œ, μ„œλ²„μ—μ„œ λ§€ μš”μ²­μ„ μ²˜λ¦¬ν•˜λ―€λ‘œ λ°±μ—”λ“œ μ„œλ²„ λΆ€ν•˜κ°€ λ°œμƒν•˜κ³  TTFB(Time to First Byte)κ°€ μƒλŒ€μ μœΌλ‘œ κΈΈμ–΄μ§ˆ 수 μžˆλ‹€λŠ” νŠΉμ§•μ„ κ³ λ €ν•΄μ•Ό ν•©λ‹ˆλ‹€ [8, 10]. * **ν™œμš© λ§₯락 (Use Cases):** 이 방식은 λ§ˆμΌ€νŒ… νŽ˜μ΄μ§€, λΈ”λ‘œκ·Έ, μ „μžμƒκ±°λž˜(E-commerce) ν”Œλž«νΌ λ“± μ½˜ν…μΈ κ°€ 맀우 λΉˆλ²ˆν•˜κ²Œ μ—…λ°μ΄νŠΈλ˜κ±°λ‚˜ μ‚¬μš©μž μ„Έμ…˜κ³Ό λ¬΄κ΄€ν•˜κ²Œ μ‹€μ‹œκ°„ 데이터 제곡 및 SEOκ°€ ν•„μˆ˜μ μΈ νŽ˜μ΄μ§€μ— 주둜 ꢌμž₯λ©λ‹ˆλ‹€ [1, 8, 11]. ## πŸ”— Knowledge Connections - **Related Topics:** [[Server-Side Rendering (SSR)]], [[Client-Side Rendering (CSR)]], [[Largest Contentful Paint (LCP)]], [[Search Engine Optimization (SEO)]], [[Core Web Vitals]] - **Projects/Contexts:** [[SEO for React Applications]], [[Core Web Vitals Optimization Guide]] - **Contradictions/Notes:** μ†ŒμŠ€μ— λ”°λ₯΄λ©΄ Next.js SSR은 초기 HTML 도달 속도와 SEO μΈ‘λ©΄μ—μ„œ λ›°μ–΄λ‚˜μ§€λ§Œ, 정적 μ‚¬μ΄νŠΈ 생성(SSG)μ΄λ‚˜ 증뢄 정적 μž¬μƒμ„±(ISR) 방식(μΊμ‹œ 기반, TTFB 20-50ms μˆ˜μ€€)에 λΉ„ν•΄ λ§€ μš”μ²­ μ‹œλ§ˆλ‹€ μ„œλ²„ λ¦¬μ†ŒμŠ€λ₯Ό μ†Œλͺ¨ν•˜λ―€λ‘œ μƒλŒ€μ μœΌλ‘œ μ„œλ²„ 응닡 μ‹œκ°„(TTFB 200-800ms)이 느릴 수 μžˆμŠ΅λ‹ˆλ‹€ [10]. λ”°λΌμ„œ μ½˜ν…μΈ  λ³€κ²½ λΉˆλ„μ™€ μ„±λŠ₯ μš”κ΅¬μ‚¬ν•­μ— 맞좰 SSR, SSG, ISR을 μ„ νƒμ μœΌλ‘œ λ„μž…ν•΄μ•Ό ν•©λ‹ˆλ‹€ [1]. --- *Last updated: 2026-04-26*