๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ’ปWEB FrontEnd/ํ”„๋ ˆ์ž„์›Œํฌ Vue

CSR์™€ SSR์˜ ์žฅ๋‹จ์ 

<Do it! Vue.js ์ž…๋ฌธ>์„ ๊ธฐ๋ณธ์œผ๋กœ ๋ฐฐ์šด ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.

 

๋ชฉ์ฐจ

  • SPA - CSR

  • MPA - SSR

 


ํŽ˜์ด์ง€๋ฅผ ๋ Œ๋”๋งํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋”ฐ๋ผ SPA์™€ SSR๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค.

 

1. SPA

  • ์ฒซ ์š”์ฒญ์‹œ ๋”ฑ ํ•œ ํŽ˜์ด์ง€๋งŒ ๋ถˆ๋Ÿฌ์˜ค๊ณ  ํŽ˜์ด์ง€ ์ด๋™์‹œ ๊ธฐ์กด ํŽ˜์ด์ง€์˜ ๋‚ด๋ถ€๋ฅผ ์ˆ˜์ •ํ•ด์„œ ๋ณด์—ฌ์ฃผ๋Š” ๋ฐฉ์‹
  • SPA(single page application)์€ ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง(CSR, client side rendering) ๋ฐฉ์‹์œผ๋กœ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ƒ๋ช… ์ฃผ๊ธฐ ์ค‘์—์„œ ๋‹จ ํ•œ ๋ฒˆ๋งŒ ๋ฆฌ์†Œ์Šค๋ฅผ ๋กœ๋”ฉํ•˜๊ณ , ๊ทธ ํ›„์—๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์˜ฌ ๋–„๋งŒ ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•œ๋‹ค. 

์žฅ์ 
  • ์ž์—ฐ์Šค๋Ÿฌ์šด ์‚ฌ์šฉ์ž ๊ฒฝํ—˜
  • ํ•„์š”ํ•œ ๋ฆฌ์†Œ์Šค๋งŒ ๋ถ€๋ถ„์ ์œผ๋กœ ๋กœ๋”ฉ
  • ์„œ๋ฒ„์˜ ํ…œํ”Œ๋ฆฟ ์—ฐ์‚ฐ์„ ํด๋ผ์ด์–ธํŠธ๋กœ ๋ถ„์‚ฐ
  • ์ปดํฌ๋„ŒํŠธ๋ณ„ ๊ฐœ๋ฐœ ์šฉ์ด
  • ๋ชจ๋ฐ”์ผ ์•ฑ ๊ฐœ๋ฐœ์„ ์—ผ๋‘์— ๋‘”๋‹ค๋ฉด ๋™์ผํ•œ API๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์„ค๊ณ„ ๊ฐ€๋Šฅ
๋‹จ์ 
  • JavaScript ํŒŒ์ผ์„ ๋ฒˆ๋“ค๋งํ•ด์„œ ํ•œ ๋ฒˆ์— ๋ฐ›๊ธฐ ๋•Œ๋ฌธ์— ์ดˆ๊ธฐ ๊ตฌ๋™์†๋„๊ฐ€ ๋Š๋ฆผ
    => webpack์˜ code splitting์œผ๋กœ ํ•ด๊ฒฐ
  • ๊ฒ€์ƒ‰์—”์ง„์ตœ์ ํ™”(SEO)๊ฐ€ ์–ด๋ ค์›€ => SSR๋กœ ํ•ด๊ฒฐ
  • ๋ณด์•ˆ ์ด์Šˆ(SPA์—์„œ๋Š” ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋งŒ ์ „๋‹ฌ๋ฐ›๊ณ  ๋งŽ์€ ๋น„์ฆˆ๋‹ˆ์Šค ๊ธฐ๋Šฅ์„ ํด๋ผ์ด์–ธํŠธ์—์„œ ์ˆ˜ํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ•ต์‹ฌ ๋กœ์ง์ด ๋…ธ์ถœ๋  ์ˆ˜ ์žˆ๋‹ค => ํ•ต์‹ฌ๋กœ์ง์€ ์„œ๋ฒ„์—์„œ ์ˆ˜ํ–‰ํ•˜๋„๋ก ํ•˜๊ณ  ์ค‘์š”ํ•œ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋Š” ์–‘์ธก ๋ชจ๋‘์—์„œ ์ˆ˜ํ–‰ํ•จ์œผ๋กœ์จ ๋ณด์•ˆ์„ฑ์„ ์œ ์ง€ํ•ด์•ผํ•œ๋‹ค.

 

 

2. MPA

MPA๋Š” ํŽ˜์ด์ง€๋ฅผ ์ด๋™ํ•  ๋•Œ๋งˆ๋‹ค ์ƒˆ๋กœ์šด ํŽ˜์ด์ง€๋ฅผ ์š”์ฒญํ•œ๋‹ค. ๋ชจ๋“  ํ…œํ”Œ๋ฆฟ์€ ์„œ๋ฒ„ ์—ฐ์‚ฐ์„ ํ†ตํ•ด์„œ ๋ Œ๋”๋งํ•˜๊ณ  ์™„์„ฑ๋œ ํŽ˜์ด์ง€ ํ˜•ํƒœ๋กœ ์‘๋‹ตํ•œ๋‹ค. ์ด ๊ณผ์ •์„ ์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง(SSR, server side rendering) ๋ฐฉ์‹์ด๋ผ ํ•œ๋‹ค.

์žฅ์ 
  • SSR์˜ ๊ฒฝ์šฐ javascript์ฝ”๋“œ๊ฐ€ ๋™์ž‘ํ•˜๊ธฐ ์ „์—๋„ ์™„์„ฑ๋œ ํ˜•ํƒœ์˜ ํ…œํ”Œ๋ฆฟ์„ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ์ „๋‹ฌ๋ฐ›๊ธฐ ๋•Œ๋ฌธ์—, javascipt๋ฅผ ๊ตฌ๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒ€์ƒ‰ ๋กœ๋ด‡์ด ํŽ˜์ด์ง€๋ฅผ ํฌ๋กค๋งํ•˜๊ธฐ์— ๋งค์šฐ ์ ํ•ฉํ•˜๋‹ค.
๋‹จ์ 
  • ํŽ˜์ด์ง€ ์ด๋™์‹œ ํ™”๋ฉด ๊นœ๋นก์ž„
  • ํŽ˜์ด์ง€ ์ด๋™์‹œ ๋ถˆํ•„์š”ํ•œ ํ…œํ”Œ๋ฆฟ๋„ ์ค‘๋ณตํ•ด์„œ ๋กœ๋”ฉ
  • ์„œ๋ฒ„ ๋ Œ๋”๋ง์— ๋”ฐ๋ฅธ ๋ถ€ํ•˜
  • ๋ชจ๋ฐ”์ผ ์•ฑ ๊ฐœ๋ฐœ์‹œ ์ถ”๊ฐ€์ ์ธ ๋ฐฑ์—”๋“œ ์ž‘์—… ํ•„์š”

 

 

 

 

 

 

์ฐธ๊ณ ํ•œ ์‚ฌ์ดํŠธ

'๐Ÿ’ปWEB FrontEnd > ํ”„๋ ˆ์ž„์›Œํฌ Vue' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€