SSR (Server-Side Rendering)

๋ช…์‚ฌ ยท ์›น ๊ฐœ๋ฐœ

1.

๊ฐ ์‚ฌ์šฉ์ž ์š”์ฒญ๋งˆ๋‹ค ์„œ๋ฒ„์—์„œ ์›น ํŽ˜์ด์ง€์˜ HTML์„ ๋™์ ์œผ๋กœ ์ƒ์„ฑํ•œ ํ›„ ๋ธŒ๋ผ์šฐ์ €๋กœ ์ „์†กํ•˜๋Š” ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง ๊ธฐ์ˆ  โ€” ์™„์ „ํ•œ ์ฝ˜ํ…์ธ ๋ฅผ ๋ณด์žฅํ•˜๋ฉฐ ๊ฒ€์ƒ‰ ์—”์ง„์ด ์ฆ‰์‹œ ์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2.

๋„ค์ดํ‹ฐ๋ธŒ SEO์˜ ์žฅ์ ๊ณผ React์˜ ์ธํ„ฐ๋ž™ํ‹ฐ๋น„ํ‹ฐ๋ฅผ ๊ฒฐํ•ฉํ•˜๊ธฐ ์œ„ํ•ด Next.js์™€ ๊ฐ™์€ ํ˜„๋Œ€ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์ฑ„ํƒํ•œ ๋ Œ๋”๋ง ์•„ํ‚คํ…์ฒ˜ โ€” ์„œ๋ฒ„๊ฐ€ ํŽ˜์ด์ง€๋ฅผ ์‚ฌ์ „ ์ƒ์„ฑํ•œ ํ›„ ํ•˜์ด๋“œ๋ ˆ์ด์…˜์„ ํ†ตํ•ด ํด๋ผ์ด์–ธํŠธ JavaScript๊ฐ€ ์ธ์ˆ˜ํ•ฉ๋‹ˆ๋‹ค.

3.

ํ‘œ์‹œ ๊ฐ€๋Šฅํ•œ HTML์„ ๋ฐ”๋กœ ์ „๋‹ฌํ•˜์—ฌ ์ฒด๊ฐ Time to First Byte(TTFB)๋ฅผ ์ค„์ด๋Š” ์›น ์„ฑ๋Šฅ ์ „๋žต์œผ๋กœ, ํด๋ผ์ด์–ธํŠธ์—์„œ๋งŒ ๋ Œ๋”๋ง๋˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ „ํ˜•์ ์ธ ํฐ ํ™”๋ฉด์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

ํ•จ๊ป˜ ๋ณด๊ธฐ
Next.jsReactSEO์›น ์„ฑ๋Šฅ

Server-Side Rendering(SSR)์€ ์„œ๋ฒ„๊ฐ€ ์‚ฌ์šฉ์ž์˜ ๋ธŒ๋ผ์šฐ์ €๋กœ ๋ณด๋‚ด๊ธฐ ์ „์— ํŽ˜์ด์ง€์˜ ์™„์ „ํ•œ HTML์„ ์ƒ์„ฑํ•˜๋Š” ์›น ๊ฐœ๋ฐœ ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ํŽ˜์ด์ง€๋ฅผ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด JavaScript๋ฅผ ์‹คํ–‰ํ•ด์•ผ ํ•˜๋Š” ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง๊ณผ ๋‹ฌ๋ฆฌ, SSR์€ ์ฆ‰์‹œ ๋ณด์ด๊ณ  ์ธ๋ฑ์‹ฑ ๊ฐ€๋Šฅํ•œ ์ฝ˜ํ…์ธ ๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ์ตœ์ ์˜ ์ž์—ฐ ๊ฒ€์ƒ‰ ์ˆœ์œ„์™€ ๋น ๋ฅธ ์ดˆ๊ธฐ ํ‘œ์‹œ ์‹œ๊ฐ„์ด ํ•„์š”ํ•œ ํ”„๋กœ์ ํŠธ์— ์ €ํฌ ์—์ด์ „์‹œ๊ฐ€ ์„ ํ˜ธํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

์ž์—ฐ ๊ฒ€์ƒ‰ ์ˆœ์œ„(SEO), ์ดˆ๊ธฐ ํ‘œ์‹œ ์†๋„ ๋˜๋Š” ์ธ๋ฑ์‹ฑ ๋กœ๋ด‡์— ๋Œ€ํ•œ ์ฝ˜ํ…์ธ  ์ ‘๊ทผ์„ฑ์ด ์šฐ์„  ์‚ฌํ•ญ์ด๋ผ๋ฉด Server-Side Rendering์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. SSR์€ ํŠนํžˆ ๊ธฐ์—… ์‚ฌ์ดํŠธ, ๋ธ”๋กœ๊ทธ, ์ด์ปค๋จธ์Šค ์‚ฌ์ดํŠธ ๋ฐ ๊ณต๊ฐœ ์ฝ˜ํ…์ธ ๊ฐ€ Google์—์„œ ํšจ์œจ์ ์œผ๋กœ ์ธ๋ฑ์‹ฑ๋˜์–ด์•ผ ํ•˜๋Š” ๋ชจ๋“  ํ”Œ๋žซํผ์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. ์ €ํฌ ์—์ด์ „์‹œ๋Š” ์œ ๊ธฐ์  ๊ฐ€์‹œ์„ฑ์ด ์ „๋žต์  ์„ฑ์žฅ ์ˆ˜๋‹จ์ธ ํ”„๋กœ์ ํŠธ์— Next.js๋ฅผ ํ†ตํ•œ SSR์„ ์ฒด๊ณ„์ ์œผ๋กœ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.