Hello Kitty Eyes Shut
๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ’ป๊ณต๋ถ€ ๊ธฐ๋ก/๐Ÿ“Œ Frontend

[Frontend] ๋ Œ๋”๋ง์˜ 3๊ฐ€์ง€ ๋ฐฉ์‹: CSR, SSR, SSG

๋ฐ˜์‘ํ˜•

 

 

 

๐Ÿ–ผ๏ธ ๋ Œ๋”๋ง์ด๋ž€

์•ž์„  ํฌ์ŠคํŒ…์—์„œ ์„ค๋ช…ํ–ˆ์—ˆ์ง€๋งŒ

์ค‘์š”ํ•œ ๋งŒํผ ๋‹ค์‹œ ํ•œ ๋ฒˆ ์งš๊ณ  ๋„˜์–ด๊ฐ€์ž๋ฉด,

๋ Œ๋”๋ง์ด๋ž€ HTML, CSS, Java Script๋ฅผ ํ•ด์„ํ•ด์„œ ์‹ค์ œ ํ™”๋ฉด (UI)์œผ๋กœ ๊ทธ๋ ค์ฃผ๋Š” ๊ฒƒ์ด๋‹ค.

 

์กฐ๊ธˆ ๋” ๊ตฌ์ฒด์ ์œผ๋กœ ์„ค๋ช…ํ•˜์ž๋ฉด,

HTML ๐Ÿ‘‰๐Ÿป ๊ตฌ์กฐ ๋‹ด๋‹น

CSS ๐Ÿ‘‰๐Ÿป ์Šคํƒ€์ผ ๋‹ด๋‹น

Java Script ๐Ÿ‘‰๐Ÿป ๋™์ž‘ ๋ฐ ๋กœ์ง ๋‹ด๋‹น

์ด ์„ธ ๊ฐ€์ง€๋ฅผ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ํ•ด์„ํ•ด์„œ ์‹œ๊ฐ์ ์œผ๋กœ ๋ณด์—ฌ์ฃผ๋Š” ๊ณผ์ •์ด ๋ Œ๋”๋ง์ด๋‹ค.

 


โš™๏ธ ๋ธŒ๋ผ์šฐ์ €์˜ ๋ Œ๋”๋ง ๊ณผ์ •

๋ธŒ๋ผ์šฐ์ €๋Š” ์•„๋ž˜์˜ 5๋‹จ๊ณ„ ๊ณผ์ •์„ ํ†ตํ•ด ํ™”๋ฉด์„ ๊ทธ๋ฆฐ๋‹ค.

 

 

 

1๏ธโƒฃ DOM & CSSOM ์ƒ์„ฑ

๋ธŒ๋ผ์šฐ์ €๊ฐ€ HTML ํŒŒ์ผ์„ ์ฝ์œผ๋ฉด์„œ

์ด๋ฅผ DOM ํŠธ๋ฆฌ (Document Object Model)๋ผ๋Š” ๊ตฌ์กฐํ™”๋œ ๊ฐ์ฒด ํ˜•ํƒœ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.

 

์ด ๋•Œ, DOM์ด๋ž€ ๋ฌธ์„œ์˜ ๊ตฌ์กฐ,

์ฆ‰ ํƒœ๊ทธ ๊ฐ„์˜ ๋ถ€๋ชจ-์ž์‹ ๊ด€๊ณ„๋ฅผ ํŠธ๋ฆฌ ํ˜•ํƒœ๋กœ ํ‘œํ˜„ํ•œ ๊ฒƒ์ด๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด <body> ์•ˆ์— <div>๊ฐ€ ์žˆ๊ณ , ๊ทธ ์•ˆ์— <p>๊ฐ€ ์žˆ๋Š” ๊ตฌ์กฐ์ฒ˜๋Ÿผ ๊ณ„์ธต์ ์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.

 

๋™์‹œ์—, ๋ธŒ๋ผ์šฐ์ €๋Š” CSS ํŒŒ์ผ๋„ ์ฝ์–ด์„œ

CSSOM (CSS Object Model)์ด๋ผ๋Š” ์Šคํƒ€์ผ ์ •๋ณด ๊ฐ์ฒด ํŠธ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

 

CSSOM์—๋Š” ํด๋ž˜์Šค, ID, ์ธ๋ผ์ธ ์Šคํƒ€์ผ ๋“ฑ ์ ์šฉ๋œ ์Šคํƒ€์ผ ์ •๋ณด๊ฐ€ ๋ชจ๋‘ ํฌํ•จ๋œ๋‹ค.

 

์ด๋Ÿฌํ•œ ๋‘ ๊ฐœ์˜ ํŠธ๋ฆฌ๋Š” ์•„์ง์€ ๋ณ„๊ฐœ๋กœ ์กด์žฌํ•˜์ง€๋งŒ,

๋‹ค์Œ ๋‹จ๊ณ„์—์„œ ๋งŒ๋‚˜๊ฒŒ ๋œ๋‹ค.

 

 

2๏ธโƒฃ Render Tree ์ƒ์„ฑ

์ด์ œ ๋ธŒ๋ผ์šฐ์ €๋Š” DOM๊ณผ CSSOM์„ ๊ฒฐํ•ฉํ•ด์„œ

ํ™”๋ฉด์— ์‹ค์ œ๋กœ ๋ณด์—ฌ์งˆ ์š”์†Œ๋“ค๋งŒ ํฌํ•จ๋œ Render Tree๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค์–ด

<div style"display: none"> ๐Ÿ‘‰๐Ÿป ํ™”๋ฉด์— ์•ˆ ๋ณด์ด๊ธฐ ๋•Œ๋ฌธ์— ์ œ์™ธ

<head>๋‚˜ <meta> ๋“ฑ ๐Ÿ‘‰๐Ÿป ํ™”๋ฉด์— ์•ˆ ๋ณด์ด๊ธฐ ๋•Œ๋ฌธ์—  ์ œ์™ธ

visibility: hidden ๐Ÿ‘‰๐Ÿป Render Tree์—๋Š” ํฌํ•จ๋˜์ง€๋งŒ, ํ™”๋ฉด์— ๋ณด์ด์ง€๋Š” ์•Š์Œ

 

์ด์ฒ˜๋Ÿผ Render Tree ์ƒ์„ฑ ๋‹จ๊ณ„์—์„œ๋Š”

๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋ฌด์—‡์„ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์—ฌ์ค„์ง€๋ฅผ ๊ฒฐ์ •ํ•œ๋‹ค.

 

 

3๏ธโƒฃ Layout ๋‹จ๊ณ„ (Reflow)

Render Tree๊ฐ€ ๋งŒ๋“ค์–ด์กŒ๋‹ค๋ฉด,

์ด์ œ ๊ฐ ์š”์†Œ๊ฐ€ ๋ธŒ๋ผ์šฐ์ € ํ™”๋ฉด ์–ด๋””์— ๋ฐฐ์น˜๋ ์ง€๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค.

 

์ด๋•Œ ๊ณ ๋ ค๋˜๋Š” ์ •๋ณด๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

 

width, height, padding, margin, position ๋“ฑ ํฌ๊ธฐ์™€ ์œ„์น˜ ์ •๋ณด,

flex / grid ๊ฐ™์€ ๋ ˆ์ด์•„์›ƒ ๊ตฌ์กฐ,

%, vw, vh ๊ฐ™์€ ์ƒ๋Œ€ ๋‹จ์œ„

 

์ด๋•Œ ๋งŒ์•ฝ ๋ฐ˜์‘ํ˜• ๋””์ž์ธ์ด๋ผ๋ฉด,

๋ธŒ๋ผ์šฐ์ €์˜ ๋ทฐํฌํŠธ ํฌ๊ธฐ์— ๋”ฐ๋ผ ๊ณ„์‚ฐ ๊ฒฐ๊ณผ๋„ ๋‹ฌ๋ผ์ง€๊ฒŒ ๋œ๋‹ค.

 

์ด๋Ÿฌํ•œ ๊ณผ์ •์„ Layout ๋˜๋Š” Reflow๋ผ๊ณ  ๋ถ€๋ฅด๋ฉฐ,

์š”์†Œ์˜ ํฌ๊ธฐ๋‚˜ ์œ„์น˜๊ฐ€ ๋ฐ”๋€Œ๋ฉด ๋‹ค์‹œ ๊ณ„์‚ฐ์ด ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์—

์„ฑ๋Šฅ์— ๋ฏผ๊ฐํ•œ ๋‹จ๊ณ„์ด๋‹ค.

 

 

4๏ธโƒฃ Paint

Layout ๋‹จ๊ณ„์—์„œ ๊ณ„์‚ฐ๋œ ์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ

๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์‹ค์ œ๋กœ ํ™”๋ฉด์„ ๊ทธ๋ฆฌ๋Š” ๋‹จ๊ณ„์ด๋‹ค.

 

์ด๋•Œ ๊ทธ๋ ค์ง€๋Š” ์š”์†Œ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

 

ํ…์ŠคํŠธ

์ด๋ฏธ์ง€

๋ฐฐ๊ฒฝ์ƒ‰

border

box-shadow

๋ฒ„ํŠผ, ์•„์ด์ฝ˜ ๋“ฑ ์‹œ๊ฐ์  ์š”์†Œ๋“ค

 

์ด๋Ÿฌํ•œ Paint ๋‹จ๊ณ„๋Š” ์‹ค์ œ ํ”ฝ์…€ ๋‹จ์œ„๋กœ ์ด๋ฃจ์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์—

๋ณต์žกํ•œ ์Šคํƒ€์ผ์ด ๋งŽ์„์ˆ˜๋ก ์‹œ๊ฐ„์ด ์™ค ๊ฑธ๋ ค์„œ

ํผํฌ๋จผ์Šค ์ €ํ•˜๋กœ ์ด์–ด์งˆ ์ˆ˜ ์žˆ๋‹ค.

 

 

5๏ธโƒฃ Reflow & Repaint

Java Script์ฝ”๋“œ๋‚˜ ์‚ฌ์šฉ์ž ์ž…๋ ฅ์ด ๋ฐœ์ƒํ•˜๋ฉด ํ™”๋ฉด์— ๋ณ€ํ™”๊ฐ€ ์ƒ๊ธฐ๊ธฐ ๋•Œ๋ฌธ์—

ํ™”๋ฉด์ด ํ•œ ๋ฒˆ ๊ทธ๋ ค์กŒ๋‹ค๊ณ  ๋๋‚˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋‹ค.

 

์ด๋Ÿฐ ์ƒํ™ฉ์—์„œ ๋ธŒ๋ผ์šฐ์ €๋Š” ๋‹ค์‹œ

Layout (Reflow) -> Paint (Repaint)๋ฅผ ์ˆ˜ํ–‰ํ•ด์„œ

๋ณ€ํ™”๋œ ๋ถ€๋ถ„๋งŒ ๋‹ค์‹œ ๋ Œ๋”๋งํ•˜๊ฒŒ ๋œ๋‹ค.

 

์ด๊ฒŒ ๋ฐ”๋กœ ๋ฆฌ๋ Œ๋”๋ง์ด๊ณ ,

์ด๊ฒƒ์ด ์ง€๋‚˜์น˜๊ฒŒ ์ž์ฃผ ์ผ์–ด๋‚˜๋ฉด ์„ฑ๋Šฅ ์ €ํ•˜์˜ ์›์ธ์ด ๋˜๊ธฐ๋„ ํ•œ๋‹ค.

 


๐Ÿ’ก ๋ Œ๋”๋ง ๋ฐฉ์‹์˜ ์„ธ ๊ฐ€์ง€ ๋ถ„๋ฅ˜

1๏ธโƒฃ CSR (Client-Side Rendering)

CSR์€ ๋ง ๊ทธ๋Œ€๋กœ ํด๋ผ์ด์–ธํŠธ (๋ธŒ๋ผ์šฐ์ €)์—์„œ ๋ Œ๋”๋ง์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

 

๐Ÿ“Œ ๋™์ž‘ ๊ณผ์ •

1) ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์„œ๋ฒ„์— ์š”์ฒญ์„ ๋ณด๋‚ธ๋‹ค.

2) ์„œ๋ฒ„๋Š” ๋นˆ HTML ํŒŒ์ผ (index.html)๊ณผ ํ•จ๊ป˜ JavaScript ํŒŒ์ผ(bundle.js)์„ ๋‚ด๋ ค์ค€๋‹ค.

3) ๋ธŒ๋ผ์šฐ์ €๋Š” Java Script๋ฅผ ์‹คํ–‰ํ•ด์„œ ํ•„์š”ํ•œ UI๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ํ™”๋ฉด์— ๊ทธ๋ ค์ค€๋‹ค.

 

๐Ÿ‘‰๐Ÿป ์ฆ‰, ์ดˆ๊ธฐ์—๋Š” ๋นˆ ํ™”๋ฉด๋งŒ ์žˆ๋‹ค๊ฐ€, Java Script๊ฐ€ ์‹คํ–‰๋˜๋ฉด ๊ทธ๋•Œ์„œ์•ผ ๋‚ด์šฉ์„ ๋ Œ๋”๋งํ•˜๊ฒŒ ๋˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

 

๐Ÿ“Œ ์˜ˆ์‹œ

React, Vue, Angular ๋“ฑ์˜

SPA (Single Page Application)๊ฐ€ ๋Œ€ํ‘œ์ ์ธ CSR ๋ฐฉ์‹์ด๋‹ค.

 

๐Ÿ“Œ ์žฅ์ 

Java Script๋งŒ์œผ๋กœ ์ฒ˜๋ฆฌ๋˜๊ธฐ ๋•Œ๋ฌธ์— ํŽ˜์ด์ง€ ์ „ํ™˜์ด ๋น ๋ฅด๋ฉฐ,

์‚ฌ์šฉ์ž์™€์˜ ์ƒํ˜ธ์ž‘์šฉ์ด ๋น ๋ฅด๊ณ  ๋ถ€๋“œ๋Ÿฝ๋‹ค.

 

๐Ÿ“Œ ๋‹จ์ 

์ฒ˜์Œ์—” ๋‚ด์šฉ ์—†๋Š” HTML์ด ๋‚ด๋ ค์˜ค๊ธฐ ๋•Œ๋ฌธ์—

๊ฒ€์ƒ‰์—”์ง„์ด ๋‚ด์šฉ์„ ์ฝ์ง€ ๋ชปํ•  ์ˆ˜ ์žˆ์–ด์„œ

SEO์— ๋ถˆ๋ฆฌํ•˜๋ฉฐ,

JavaScript๋ฅผ ๋‹ค ๋ถˆ๋Ÿฌ์˜ค๊ณ  ์‹คํ–‰๋˜๊ธฐ ์ „๊นŒ์ง€๋Š”

์‚ฌ์šฉ์ž์—๊ฒŒ ๋น„์–ด์žˆ๋Š” ํ™”๋ฉด๋งŒ ๋ณด์ด๊ธฐ ๋•Œ๋ฌธ์—

์ฒซ ํ™”๋ฉด ๋กœ๋”ฉ ์†๋„๊ฐ€ ๋А๋ฆฌ๋‹ค.

 

 

2๏ธโƒฃ SSR (Server-Side Rendering)

์•ž์„œ ๋งํ•œ CSR์˜ ๋‹จ์ ์„ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋“ฑ์žฅํ•œ ๊ฒƒ์ด SSR๋กœ,

์„œ๋ฒ„์—์„œ ๋ฏธ๋ฆฌ ๋ Œ๋”๋ง๋œ HTML์„ ์ƒ์„ฑํ•ด์„œ

ํด๋ผ์ด์–ธํŠธ์— ๋‚ด๋ ค์ฃผ๋Š” ๋ฐฉ์‹์ด๋‹ค.

 

๐Ÿ“Œ ๋™์ž‘ ๊ณผ์ •

1) ์‚ฌ์šฉ์ž๊ฐ€ ๋ธŒ๋ผ์šฐ์ €์—์„œ URL์„ ์š”์ฒญํ•œ๋‹ค.

2) ์„œ๋ฒ„๊ฐ€ ํ•ด๋‹น ํŽ˜์ด์ง€๋ฅผ HTML ํ˜•ํƒœ๋กœ ์ฆ‰์‹œ ์ƒ์„ฑํ•ด์„œ ์‘๋‹ตํ•œ๋‹ค.

3) ๋ธŒ๋ผ์šฐ์ €๋Š” HTML์„ ๊ทธ๋Œ€๋กœ ๊ทธ๋ ค์„œ ๋ณด์—ฌ์ฃผ๊ณ ,

์ดํ›„ JavaScript๊ฐ€ ๋กœ๋“œ๋˜๋ฉฐ ์ธํ„ฐ๋ž™์…˜ ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋œ๋‹ค.

 

๐Ÿ“Œ ์˜ˆ์‹œ

Next.js๊ฐ€ ๋Œ€ํ‘œ์ ์ธ SSR ๊ธฐ๋ฐ˜ ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค.

 

๐Ÿ“Œ ์žฅ์ 

HTML์— ์ด๋ฏธ ์ฝ˜ํ…์ธ ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฒ€์ƒ‰์—”์ง„์ด ๋‚ด์šฉ์„ ์‰ฝ๊ฒŒ ์ฝ์–ด์„œ

SEO์— ๊ฐ•ํ•˜๋ฉฐ,

์‚ฌ์šฉ์ž๋Š” ์ฆ‰์‹œ ์™„์„ฑ๋œ ํ™”๋ฉด์„ ๋ณผ ์ˆ˜ ์žˆ๊ธฐ์—

์ฒซ ๋กœ๋”ฉ ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค.

 

๐Ÿ“Œ ๋‹จ์ 

๋ชจ๋“  ์š”์ฒญ๋งˆ๋‹ค ํŽ˜์ด์ง€๋ฅผ ์ƒˆ๋กœ ๋ Œ๋”๋งํ•ด์•ผ ๋ผ์„œ ์„œ๋ฒ„ ๋ถ€ํ•˜๊ฐ€ ํฌ๊ณ ,

ํด๋ผ์ด์–ธํŠธ์—์„œ ๋‹ค์‹œ JavaScript๊ฐ€ ์‹คํ–‰๋˜๋ฉฐ ์žฌ๋ Œ๋”๋ง์ด ์ผ์–ด๋‚˜์„œ ๊นœ๋นก์ž„์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ,

๋™์  ์ƒํ˜ธ์ž‘์šฉ์€ CSR ๋ณด๋‹ค ๋А๋ฆฌ๋‹ค.

 

 

3๏ธโƒฃ SSG (Static Site Generation)

SSG๋Š” HTML์„ ๋ฏธ๋ฆฌ ์ •์ ์œผ๋กœ ๋งŒ๋“ค์–ด๋‘๊ณ ,

์‚ฌ์šฉ์ž๊ฐ€ ์š”์ฒญํ•  ๋•Œ ๋ฐ”๋กœ ๋ณด์—ฌ์ฃผ๋Š” ๋ฐฉ์‹์ด๋‹ค.

 

๐Ÿ“Œ ๋™์ž‘ ๊ณผ์ •

1) ๋นŒ๋“œํ•  ๋•Œ ๋ฏธ๋ฆฌ ๋ชจ๋“  HTML ํŽ˜์ด์ง€๋ฅผ ์ƒ์„ฑํ•ด๋‘”๋‹ค.

2) ์‚ฌ์šฉ์ž๊ฐ€ ์š”์ฒญํ•˜๋ฉด ์„œ๋ฒ„๋Š” ๋‹จ์ˆœํžˆ ๋งŒ๋“ค์–ด์ง„ HTML ํŒŒ์ผ์„ ๊ทธ๋Œ€๋กœ ์‘๋‹ตํ•œ๋‹ค.

 

๐Ÿ“Œ ์˜ˆ์‹œ

Gatsby, Next.js (Static ๋ชจ๋“œ) ๋“ฑ์ด SSG๋ฅผ ์ง€์›ํ•œ๋‹ค.

 

๐Ÿ“Œ ์žฅ์ 

์ •์  ํŒŒ์ผ์„ ๊ทธ๋Œ€๋กœ ์‘๋‹ตํ•˜๋ฉด ๋˜๊ธฐ์— ์†๋„๊ฐ€ ๋งค์šฐ ๋น ๋ฅด๊ณ ,

์„œ๋ฒ„ ๋ถ€ํ•˜๊ฐ€ ์—†์œผ๋ฉฐ,

SEO์— ์ตœ์ ํ™”๋˜์–ด ์žˆ๋‹ค.

 

๐Ÿ“Œ ๋‹จ์ 

๊ฒŒ์‹œ๊ธ€์ด ์ž์ฃผ ๋ฐ”๋€Œ๋Š” ๊ฒฝ์šฐ ๋“ฑ ๋™์  ๋ฐ์ดํ„ฐ์—๋Š” ๋ถ€์ ํ•ฉํ•˜๋ฉฐ,

ํŽ˜์ด์ง€๊ฐ€ ๋งŽ์•„์งˆ์ˆ˜๋ก ๋นŒ๋“œ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฐ๋‹ค.

 

๐Ÿ‘‰๐Ÿป ํ•œ ๋ฒˆ ๋งŒ๋“  ํŽ˜์ด์ง€๋ฅผ ๋ฐฐํฌ ํ›„์—๋Š” ์„œ๋ฒ„ ์—ฐ์‚ฐ ์—†์ด๋„ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ์–ด์„œ

์ •์  ๋ธ”๋กœ๊ทธ, ๋ฌธ์„œ ์‚ฌ์ดํŠธ ๋“ฑ์— ์ ํ•ฉํ•˜๋‹ค.

 


โš–๏ธ CSR vs SSR vs SSG ๋น„๊ต

ํ•ญ๋ชฉ CSR SSR SSG
๋ Œ๋”๋ง ์œ„์น˜ ํด๋ผ์ด์–ธํŠธ ์„œ๋ฒ„ ๋นŒ๋“œ ์‹œ ์ •์  ์ƒ์„ฑ
SEO ์ ํ•ฉ์„ฑ โŒ ๋‚ฎ์Œ โœ… ์ข‹์Œ โœ… ๋งค์šฐ ์ข‹์Œ
์ฒซ ๋กœ๋”ฉ ์†๋„ โŒ ๋А๋ฆผ โœ… ๋น ๋ฆ„ โœ… ๋งค์šฐ ๋น ๋ฆ„
ํŽ˜์ด์ง€ ์ „ํ™˜ โœ… ๋น ๋ฆ„ ๐Ÿ”ถ ๋ณดํ†ต โœ… ๋น ๋ฆ„
์„œ๋ฒ„ ๋ถ€ํ•˜ โœ… ์ ์Œ โŒ ํผ โœ… ์—†์Œ
์‹ค์‹œ๊ฐ„์„ฑ โœ… ์ข‹์Œ โœ… ์ข‹์Œ โŒ ์ œํ•œ์ 

 


๐Ÿ™„ ์–ด๋–ค ๋ฐฉ์‹์„ ์„ ํƒํ•ด์•ผ ํ• ๊นŒ?

1๏ธโƒฃ CSR์ด ์ ํ•ฉํ•œ ๊ฒฝ์šฐ

๋Œ€์‹œ๋ณด๋“œ, ๊ด€๋ฆฌ ํŽ˜์ด์ง€, ์•ฑ ๋А๋‚Œ์˜ UX๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ

SEO๊ฐ€ ์ค‘์š”ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜, ๋กœ๊ทธ์ธ ํ›„ ํ™”๋ฉด ์ค‘์‹ฌ์ธ ๊ฒฝ์šฐ

 

2๏ธโƒฃ SSR์ด ์ ํ•ฉํ•œ ๊ฒฝ์šฐ

๋‰ด์Šค, ์‡ผํ•‘๋ชฐ, ๋ธ”๋กœ๊ทธ ๋“ฑ SEO๊ฐ€ ์ค‘์š”ํ•œ ์ฝ˜ํ…์ธ  ๊ธฐ๋ฐ˜ ์›น ์‚ฌ์ดํŠธ

์ดˆ๊ธฐ ๋กœ๋”ฉ ์†๋„ ๊ฐœ์„ ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ

 

3๏ธโƒฃ SSG๊ฐ€ ์ ํ•ฉํ•œ ๊ฒฝ์šฐ

๋ธ”๋กœ๊ทธ, ๋ฌธ์„œ ์‚ฌ์ดํŠธ, ๋งˆ์ผ€ํŒ… ํŽ˜์ด์ง€ ๋“ฑ ๋ณ€ํ™”๊ฐ€ ์ ๊ณ  ์ •์ ์ธ ํŽ˜์ด์ง€

๋นŒ๋“œ ์‹œ๊ฐ„์€ ์˜ค๋ž˜ ๊ฑธ๋ ค๋„ ์ƒ๊ด€ ์—†๋Š” ๊ฒฝ์šฐ

 


๐Ÿ”š ๊ฒฐ๋ก 

์ตœ๊ทผ์—๋Š” Next.js์ฒ˜๋Ÿผ CSR, SSR, SSG๋ฅผ ํ˜ผํ•ฉํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์ ‘๊ทผ ๋ฐฉ์‹์ด ๋Œ€์„ธ๋ผ๊ณ  ํ•œ๋‹ค.

์ƒํ™ฉ์— ๋”ฐ๋ผ ๋ Œ๋”๋ง ์ „๋žต์„ ์œ ์—ฐํ•˜๊ฒŒ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„ํ•˜๋Š” ๊ฒŒ ์ค‘์š”ํ•  ๊ฒƒ ๊ฐ™๋‹ค.

๋ฐ˜์‘ํ˜•