๐Ÿ’ป SPA, MPA,CSR,SSR

chloeยท2020๋…„ 12์›” 23์ผ
0

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
19/81

์›น์„œ๋น„์Šค์˜ ์—ญ์‚ฌ์— ๋Œ€ํ•ด ๋จผ์ œ ๋ณต์Šตํ•ด๋ณด์ž.

์›น ์„œ๋น„์Šค์˜ ์—ญ์‚ฌ

1์„ธ๋Œ€ ์›น์€ ์ „ํ†ต์ ์ธ Web System Architencture์ด๋ฉฐ ์ •์ ์ธ ์›น์ด๋‹ค.

  • ์›น ์„œ๋ฒ„๊ฐ€ HTML ํŽ˜์ด์ง€ ์ „์ฒด๋ฅผ ํด๋ผ์ด์–ธํŠธ(์›น ๋ธŒ๋ผ์šฐ์ €)์—๊ฒŒ ์ „์†กํ•œ๋‹ค.
  • ์ดˆ์ฐฝ๊ธฐ ์›น์‚ฌ์ดํŠธ๋Š” ๋‹จ์ˆœํ•œ ์ •๋ณด ์ œ๊ณต์œ„์ฃผ์˜€๋‹ค. ํŠน๋ณ„ํ•œ ๊ธฐ๋Šฅ์ด ์—†์—ˆ์œผ๋ฉฐ ๋ฌด์—‡๋ณด๋‹ค User Interaction์ด ๋งŽ์ด ์š”๊ตฌ๋˜์ง€ ์•Š์•˜๋‹ค.
  • ๊ทธ๋ ‡๋‹ค๋ฉด ์™œ 1์„ธ๋Œ€ ์›น์€ ์ •์ ์ผ๊นŒ? HTML, CSS ์ž์ฒด๊ฐ€ ์ •์ ์ด๋‹ค
  • ์–ด๋–ป๊ฒŒ ๋ณด์—ฌ์ง€๋Š”๊ฐ€์— ๋Œ€ํ•œ ๊ฒƒ์ด๊ธฐ์— (๋™์ ์ธ) ๋กœ์ง์ด ์—†๋‹ค. ์ •์ ์ด๋‹ค.

2์„ธ๋Œ€ ์›น์€ User Interaction์˜ ์ฆ๊ฐ€, ๋™์  ์›น(์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ)

  • ์›น ์„œ๋น„์Šค๋“ค์ด ์ ์  ๋ฐœ์ „ํ–ˆ๊ณ  ์ด์— ๋”ฐ๋ผ ๋‹จ์ˆœํ•œ ์ •์ ์ธ ํŽ˜์ด์ง€๊ฐ€ ์•„๋‹Œ ๋‹ค์ด๋‚˜๋ฏนํ•œ ์š”์†Œ๋“ค์ด ์š”๊ตฌ๋˜์—ˆ๋‹ค.
  • ์›น ๊ธฐ๋ฐ˜์˜ ์–ธ์–ด์ธ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์ถœํ˜„ํ–ˆ๋‹ค. ์ด ์—ญํ• ์ด ์ปค์ง€๊ธฐ ์‹œ์ž‘ํ•จ
  • web server์—์„œ ์ „์ฒด HTML ํŽ˜์ด์ง€๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ†ตํ•ด ์„œ๋ฒ„์™€ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋งŒ ์ฃผ๊ณ  ๋ฐ›์Œ์œผ๋กœ ๋‹ค์ด๋‚˜๋ฏนํ•œ UI๋ฅผ ๊ตฌํ˜„ํ•˜๊ฒŒ ๋จ
  • ๊ทธ๋Ÿฌ๋‚˜ ์•„์ง js๋Š” ์ผ๋ถ€๋ถ„์—์„œ๋งŒ ์‚ฌ์šฉ๋˜์—ˆ๊ณ  ๋˜ํ•œ ํ˜„์žฌ ํ†ต์šฉ๋˜๋Š” API์˜ ๊ฐœ๋…์ด ์•„์ง์€ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜์ง€ ์•Š์•˜์Œ

3์„ธ๋Œ€ ์›น์€ SPA(Single Page Application)
ํ”„๋ก ํŠธ์—”๋“œ์™€ ๋ฐฑ์—”๋“œ๊ฐ€ ๊ตฌ๋ณ„๋˜๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค.

  • ๋™์ ์ธ ๊ธฐ๋Šฅ์ด ์ฃผ๊ฐ€ ๋˜์–ด๋ฒ„๋ ธ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์ฃผ๊ฐ€ ๋˜๊ณ  ๊ทธ ์•ˆ์— ์ผ๋ถ€ HTML,CSS๊ฐ€ ํฌํ•จ
  • ์ด๊ฒŒ ๋ฐ”๋กœ SPA(single page application) ํ•˜๋‚˜์˜ ํŒŒ์ผ๋กœ ์ „์ฒด ์‚ฌ์ดํŠธ๋ฅผ ๊ตฌํ˜„
  • ์ด๋ฆ„ ๊ทธ๋Œ€๋กœ ๋‹จ์ผ html ํŽ˜์ด์ง€์—์„œ ์ „์ฒด ์›น ์‚ฌ์ดํŠธ/์„œ๋น„์Šค๋ฅผ ๊ตฌํ˜„
  • ๊ธฐ์กด ๋ฐฉ์‹๋Œ€๋กœ ์„œ๋ฒ„๊ฐ€ ํŽ˜์ด์ง€ ๊ตฌ์„ฑ์— ํ•„์š”ํ•œ ๋ชจ๋“  ์š”์†Œ( HTML,JavaScript,Data)๋ฅผ ๋งค๋ฒˆ ์ „์†กํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ํŒŒ์ผ์€ ์ฒ˜์Œ ํ•œ ๋ฒˆ๋งŒ ์†ก์ˆ˜์‹ ํ•˜๊ณ  ๊ทธ ๋’ค๋กœ๋Š” ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ๋งŒ ์ฃผ๊ณ  ๋ฐ›๋Š”๋‹ค.
  • ์ œ์ผ ์ฒ˜์Œ ์ „์†ก๋œ ๋‹จ์ผ HTML ํŽ˜์ด์ง€์—์„œ ํฌํ•จ๋˜์–ด์žˆ๋Š” javascript์—์„œ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ API์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ํ˜ธ์ถœํ•˜์—ฌ ํ•„์š”ํ•œ ํ™”๋ฉด์„ dynamicํ•˜๊ฒŒ ์ƒˆ๋กญ๊ฒŒ ๊ตฌ์„ฑํ•ด์ฃผ๋Š” ๋ฐฉ์‹์ด๋‹ค.
  • HTML ํƒœ๊ทธ๋ฅผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋™์ ์œผ๋กœ ์ƒ์„ฑํ•œ๋‹ค.
  • ๋ช…ํ™•ํžˆ ๋‘ ๊ฐœ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๊ฒ ๋‹ค!=> ํ”„๋ก ํŠธ์—”๋“œ์™€ ๋ฐฑ์—”๋“œ๊ฐ€ ๋‚˜๋‰˜๊ฒŒ ๋˜๋Š” ๊ธฐ์ 
  • ์ฆ‰ HTML,Javascript๋ถ€๋ถ„๊ณผ ๋ฐ์ดํ„ฐ ๋ถ€๋ถ„์ด ๊ตฌ์กฐ์ ์œผ๋กœ ๋ถ„๋ฆฌ ๋˜๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค.( ํ”„๋ก ํŠธ- UI,UX/ ๋ฐฑ์—”๋“œ -๋ฐ์ดํ„ฐ)
  • ๋ช…ํ™•ํžˆ ๋‚˜๋‰˜์–ด์ง„ ๋‘ ๊ฐœ์˜ ์‹œ์Šคํ…œ์œผ๋กœ ์›น์ด ๋™์ž‘ํ•˜๊ฒŒ ๋จ

    SPA ์žฅ์  1.์‚ฌ์šฉ์ž ์นœํ™”์ ์ด๋‹ค.2. ์ƒ๋Œ€์ ์œผ๋กœ ์ ์€ ์ „์ฒด ํŠธ๋ž˜ํ”ฝ ์–‘ 3. ํ•„์š”ํ•œ ๋ถ€๋ถ„๋งŒ ์ƒˆ๋กœ ๊ทธ๋ฆฌ๊ณ  ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋งŒ ์ƒˆ๋กœ ๋ฐ›๋Š”๋‹ค 4.์ƒ๋Œ€์ ์œผ๋กœ ์œ ์ง€ ๋ณด์ˆ˜๊ฐ€ ์‰ฝ๊ณ  ๊ฐœ๋ฐœ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค 5.ํ”„๋ก ํŠธ์—”๋“œ์™€ ๋ฐฑ์—”๋“œ์˜ ๋ถ„๋ฆฌ๋กœ์ธํ•œ ๊ฐœ๋ฐœ์—…๋ฌด ๋ถ„์—…ํ™” ๋ฐ ํ˜‘์—…์ด ์‰ฝ๋‹ค
    SPA๋‹จ์  1.(JSํŒŒ์ผ์„ ๋ฒˆ๋“ค๋งํ•ด์„œ ํ•œ๋ฒˆ์— ๋ฐ›๊ธฐ์—)์ดˆ๊ธฐ ๊ตฌ๋™์†๋„ ๋Š๋ฆผ =>Lazy Loading์œผ๋กœ ํ•ด๊ฒฐ๊ฐ€๋Šฅ 2. ๊ฒ€์ƒ‰์—”์ง„ ์ตœ์ ํ™”SEO๊ฐ€ ์–ด๋ ค์›€ =>SSR๋กœ ํ•ด๊ฒฐ 3. ๋ณด์•ˆ ๋ฌธ์ œ =>ํ•ต์‹ฌ๋กœ์ง ์ตœ์†Œํ™”


SPA๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๋ Œ๋”๋ง ๋ฐฉ์‹์€ CSR์ด๊ณ , MPA๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๋ Œ๋”๋ง ๋ฐฉ์‹์€ SSR์ด๋‹ค.

CRA (Create React App)

์•„๋ฌด๋Ÿฐ ์ดˆ๊ธฐ ์„ค์ • ์—†์ด๋„ CRA๋ฅผ ํ†ตํ•ด ๋ฆฌ์•กํŠธ ๊ธฐ๋ฐ˜์˜ ์‚ฌ์ดํŠธ๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ด์ƒํ•œ ์ ์ด ๋ฐœ๊ฒฌ๋˜๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค
" ์™œ ์šฐ๋ฆฌ ์‚ฌ์ดํŠธ๊ฐ€ ๊ฒ€์ƒ‰์— ์ž˜ ์•ˆ๊ฑธ๋ฆด๊นŒ?"
์›์ธ=> CRA๋กœ buildํ•œ ํ”„๋กœ์ ํŠธ๋Š” only CSR(Client Side Render)๋กœ ์‹คํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

CSR( Client side Rendering)

  • ์›น ํŽ˜์ด์ง€์˜ ๋ Œ๋”๋ง์ด ํด๋ผ์ด์–ธํŠธ(๋ธŒ๋ผ์šฐ์ €) ์ธก์—์„œ ์ผ์–ด๋‚˜๋Š” ๊ฒƒ์„ ์˜๋ฏธ
  • ๋ธŒ๋ผ์šฐ์ €๋Š” ์ตœ์ดˆ ์š”์ฒญ์—์„œ html,js,css ํ™•์žฅ์ž์˜ ํŒŒ์ผ์„ ์ฐจ๋ก€๋กœ ๋‹ค์šด๋กœ๋“œ ํ•œ๋‹ค.
  • ์ตœ์ดˆ๋กœ ๋ถˆ๋Ÿฌ์˜จ html์˜ ๋‚ด์šฉ์€ ๋น„์–ด์žˆ๋‹ค.(html,bodyํƒœ๊ทธ๋งŒ ์กด์žฌํ•จ) =>๊ทธ๋ž˜์„œ ์ฒ˜์Œ์— ์ ‘์†ํ•˜๋ฉด ๋นˆํ™”๋ฉด๋งŒ ๋ณด์ธ๋‹ค.
  • ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ js ํŒŒ์ผ๋‹ค์šด๋กœ๋“œ ๋ฐ›๋Š”๋‹ค. ์—ฌ๊ธฐ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—๋Š” ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ๋™ํ•˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ,๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์†Œ์Šค์ฝ”๋“œ๋“ค๋„ ๋‹ค ํฌํ•จ์ด ๋œ๋‹ค. (์‚ฌ์ด์ฆˆ๊ฐ€ ์ปค์„œ ๋‹ค์šด๋กœ๋“œ๋ฐ›๋Š”๋ฐ๋„ ์‹œ๊ฐ„์ด ์˜ค๋ž˜๊ฑธ๋ฆผ)๋‹ค์šด๋กœ๋“œ ์™„๋ฃŒ๋œ ๋‹ค์Œ ํ•ด๋‹น jsํŒŒ์ผ์ด dom์„ ๋นˆ html์œ„์— ๊ทธ๋ฆฌ๊ธฐ ์‹œ์ž‘
  • ๋ฐฑ์—”๋“œ ํ˜ธ์ถœ์„ ์ตœ์†Œํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค ( ์ตœ์ดˆ ํ˜ธ์ถœ ๋•Œ๋งŒ html,js,css๋ฅผ ์š”์ฒญํ•œ๋‹ค, ์ดํ›„์—๋Š” ํ™”๋ฉด์—์„œ ๋ณ€ํ™”๊ฐ€ ์ผ์–ด๋‚˜์•ผ ํ•˜๋Š” ๋งŒํผ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•จ)
  • ๋ผ์šฐํŒ…์„ ํ•˜๋”๋ผ๋„ html ์ž์ฒด๊ฐ€ ๋ฐ”๋€Œ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ javascript ์ฐจ์›์—์„œ ์ƒˆ๋กœ์šด ํ™”๋ฉด์„ ๊ทธ๋ ค๋‚ด๋Š” ๊ฒƒ์ด๋‹ค.

์žฅ์ : ์ฒซ ๋กœ๋”ฉ๋งŒ ๊ธฐ๋‹ค๋ฆฌ๋ฉด, ๋™์ ์œผ๋กœ ๋น ๋ฅด๊ฒŒ ๋ Œ๋”๋ง์ด ๋˜๊ธฐ์— ux๊ฐ€ ์ข‹๋‹ค. ์„œ๋ฒ„์— ์š”์ฒญํ•˜๋Š” ํšŸ์ˆ˜๊ฐ€ ํ›จ์”ฌ ์ ์–ด์„œ ์„œ๋ฒ„์˜ ๋ถ€๋‹ด์ด ๋œํ•˜๋‹ค
๋‹จ์ : 1. ์‚ฌ์šฉ์ž๊ฐ€ ์ฒซ ํ™”๋ฉด์„ ๋ณด๊ธฐ๊นŒ์ง€ ์‹œ๊ฐ„์ด ์˜ค๋ž˜๊ฑธ๋ฆฐ๋‹ค.2 (๊ฒ€์ƒ‰์—”์ง„์ด ํฌ๋กค๋ง์„ ํ•˜๋Š”๋ฐ ์–ด๋ ค์›€์„ ๊ฒช๊ธฐ์—)๊ฒ€์ƒ‰์—”์ง„ ์ตœ์ ํ™”์˜ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค.=>๋„ค์ด๋ฒ„์™€ ๊ฐ™์€ ๊ฒ€์ƒ‰์—”์ง„๋“ค์€ ์„œ๋ฒ„์— ๋“ฑ๋ก๋œ ์›น์‚ฌ์ดํŠธ๋ฅผ ํ•˜๋‚˜ํ•˜๋‚˜ ๋Œ์•„๋‹ค๋‹ˆ๋ฉด์„œ ์›น์‚ฌ์ดํŠธ HTML๋ฌธ์„œ๋ฅผ ๋ถ„์„ํ•ด์„œ ์‚ฌ์šฉ์ž๊ฐ€ ๊ฒ€์ƒ‰ํ•  ๋•Œ ์›น์‚ฌ์ดํŠธ๋“ค์„ ๋น ๋ฅด๊ฒŒ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์ค€๋‹ค. ํ•˜์ง€๋งŒ CSR์—์„œ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋Š” HTML์˜ ๋ฐ”๋””๋Š” ๋Œ€๋ถ€๋ถ„ ํ……ํ…… ๋น„์–ด์žˆ๊ธฐ์— ๊ฒ€์ƒ‰์—”์ง„๋“ค์ด CSR๋กœ ์ž‘์„ฑ๋œ ์›นํŽ˜์ด์ง€๋“ค์„ ๋ถ„์„ํ•˜๋Š”๋ฐ ์–ด๋ ค์›€์„ ๊ฒผ๋Š”๋‹ค.
SEO (Search Engine Optimization)

  • ํ•˜์ง€๋งŒ ์›น ํฌ๋กค๋Ÿฌ ์ž…์žฅ์—์„œ CSR๋กœ ๊ตฌ์„ฑ๋œ ํŽ˜์ด์ง€์— ์ ‘์†ํ•˜๋Š” ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์žฌ๊ตฌ์„ฑ
    --> CRA๋กœ ๋งŒ๋“ค์—ˆ๋˜ ํŽ˜์ด์ง€๋“ค์ด ๊ฒ€์ƒ‰ ๋…ธ์ถœ์ด ์ž˜ ์•ˆ๋œ๋‹ค๋Š” ์‚ฌ์‹ค์ด ์•Œ๋ ค์ง€๋ฉด์„œ SEO์— ๋ฏผ๊ฐํ•œ ์ปค๋จธ์Šค ๋“ฑ์˜ ๋น„์ฆˆ๋‹ˆ์Šค ์˜์—ญ์€ ๋Œ€์•ˆ์„ ์ฐพ์•„์•ผ ํ•œ๋‹ค.

SPA์˜ ์žฅ์ ์„ ์‚ด๋ฆฌ๋ฉด์„œ SEO๋„ ๊ฐ™์ด ์ฑ™๊ธธ ์ˆ˜๋Š” ์—†์„๊นŒ?
==>SSR(Server Side Rendering)

SSR(Server Side Rendering)

  • SSR์€ ์„œ๋ฒ„์—์„œ ์ฒซ ํŽ˜์ด์ง€์˜ ๋ Œ๋”๋ง์„ ํด๋ผ์ด์–ธํŠธ ์ธก์ด ์•„๋‹Œ ์„œ๋ฒ„ ์ธก์—์„œ ์ฒ˜๋ฆฌํ•ด์ฃผ๋Š” ๋ฐฉ์‹์ด๋‹ค. (์„œ๋ฒ„์—์„œ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‘ ๊ฐ€์ ธ์™€์„œ HTMLํŒŒ์ผ์„ ๋งŒ๋“ค๊ฒŒ ๋œ๋‹ค)
    CSR์ด๋ž‘ ๋น„๊ตํ–ˆ์„ ๋•Œ,
    1) SEO์ธก๋ฉด์—์„œ ์œ ๋ฆฌํ•˜๋‹ค.
    -> ์„œ๋ฒ„์—์„œ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์—ฌ์ค„ ํŽ˜์ด์ง€๋ฅผ ๋ชจ๋‘ ๊ตฌ์„ฑํ•˜์—ฌ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์—ฌ์ฃผ๋Š” ๋ฐฉ์‹์ด๊ธฐ์— CSR์˜ ๋‹จ์ ์ธ "์ฒซํŽ˜์ด์ง€ ๊นกํ†ต" ์ƒํƒœ๋ฅผ ๊ทน๋ณตํ•  ์ˆ˜ ์žˆ์Œ
    2) UX์ธก๋ฉด์—์„œ ์œ ๋ฆฌํ•˜๋‹ค
    -> CSR์— ๋น„ํ•ด ํŽ˜์ด์ง€๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์†๋„๋Š” ๋Šฆ์–ด์ง€์ง€๋งŒ, ์ „์ฒด์ ์œผ๋กœ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์—ฌ์ฃผ๋Š” ์ฝ˜ํ…์ธ  ๊ตฌ์„ฑ์ด ์™„๋ฃŒ๋˜๋Š” ์‹œ์ ์€ ๋นจ๋ผ์ง„๋‹ค.
    ์ฃผ์˜) ํŽ˜์ด์ง€๋ฅผ ์ž˜๋ชป ๊ตฌ์„ฑํ•  ๊ฒฝ์šฐ CSR์— ๋น„ํ•ด ์„œ๋ฒ„ ๋ถ€ํ•˜๊ฐ€ ์ปค์ง€๊ฑฐ๋‚˜ ์ฒซ ๋กœ๋”ฉ์ด ๋งค์šฐ ๋Š๋ ค์งˆ ์ˆ˜ ์žˆ์Œ

์žฅ์ : ์ดˆ๊ธฐ๋กœ๋”ฉ ์†๋„๊ฐ€ ๋น ๋ฅด๊ธฐ์— ์‚ฌ์šฉ์ž๊ฐ€ ์ปจํ…์ธ ๋ฅผ ๋นจ๋ฆฌ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๊ฒ€์ƒ‰์—”์ง„ ์ตœ์ ํ™”๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.
๋‹จ์ :๋งค๋ฒˆ ํŽ˜์ด์ง€๋ฅผ ์š”์ฒญํ•  ๋•Œ๋งˆ๋‹ค ์ƒˆ๋กœ๊ณ ์นจ ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์ด SPA์— ๋น„ํ•ด์„œ ์ข‹์ง€ ์•Š๋‹ค.
์„œ๋ฒ„์— ๋งค๋ฒˆ ์š”์ฒญ์„ ํ•˜๊ธฐ์— ์„œ๋ฒ„์˜ ๋ถ€ํ•˜๊ฐ€ ์ปค์ง„๋‹ค.
1.Blinking issue ์‚ฌ์šฉ์ž๊ฐ€ ํด๋ฆญ์„ ํ•˜๊ฒŒ๋˜๋ฉด ์ „์ฒด์ ์ธ ์›น์‚ฌ์ดํŠธ๋ฅผ ๋‹ค์‹œ ์„œ๋ฒ„์—์„œ ๋ฐ›์•„์˜ค๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•˜๊ธฐ์— ์‚ฌ์šฉ์ž๊ฒฝํ—˜์ด ์ข‹์ง€ ์•Š๋‹ค.
2. ์„œ๋ฒ„ ๊ณผ๋ถ€ํ•˜ ๊ฑธ๋ฆฌ๊ธฐ ์‰ฝ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ๋งŽ์ด ์ ‘์†ํ•˜๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ํด๋ฆญํ•  ๋•Œ๋งˆ๋‹ค ์„œ๋ฒ„์— ์š”์ฒญ์„ ํ•˜๋‹ˆ๊นŒ ์„œ๋ฒ„ ๊ณผ๋ถ€ํ•˜ ๊ฑธ๋ฆฌ๊ธฐ ์‰ฌ์›€

hydration

  • ์„œ๋ฒ„์—์„œ ์ „์†กํ•œ ์ •์  ๋ฌธ์„œ๋ฅผ ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ์— ๋ฐ˜์‘ํ•  ์ˆ˜ ์žˆ๋Š” ๋™์  ํ˜•ํƒœ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ํด๋ผ์ด์–ธํŠธ ์ธก ํ”„๋กœ์„ธ์Šค๋ฅผ ๋งํ•œ๋‹ค.

  • render์™€ ๋™์ผํ•˜์ง€๋งŒ, dom์€ ์ด๋ฏธ ๊ทธ๋ ค์ ธ ์žˆ๋Š” ์ƒํƒœ์ด๊ธฐ ๋•Œ๋ฌธ์— event listener๋งŒ ๋ถ€์ฐฉํ•˜๋Š” ์‹์œผ๋กœ ์ž‘๋™.

    • SPA(๊ฒฐ๊ณผ๋ฌผ) =CSR,SSR(๋ Œ๋”๋ง ๋ฐฉ๋ฒ•)
    • SSR๊ณผ CSR์„ ์„ž์–ด ์“ธ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ• =>Next.js

    ์ถœ์ฒ˜: wecode

profile
Front-end Developer ๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป

0๊ฐœ์˜ ๋Œ“๊ธ€