[React] AngularJS, Svelte, Vue.js ๋น„๊ต

yeonddoriยท2023๋…„ 9์›” 13์ผ
0

AID_WEB

๋ชฉ๋ก ๋ณด๊ธฐ
5/10

๐Ÿ“ AngularJS

AngularJS๋Š” SPA(Single Page Application) JavaScript ๊ธฐ๋ฐ˜ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ, MVVM(Model-View-ViewModel) ๋ชจ๋ธ๋ง์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

SPA
๋‹จ์ผ ํŽ˜์ด์ง€ ๋‚ด์—์„œ ์ƒˆ๋กœ์šด View๋ฅผ ํŽ˜์ด์ง€์˜ ์ฃผ์†Œ๊ฐ€ ๋ฐ”๋€Œ์ง€ ์•Š์œผ๋ฉด์„œ ๋™์ ์œผ๋กœ ๋กœ๋“œํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ

ํŠน์ง•

  • ์‰ฌ์šด ์œ ์ง€๋ณด์ˆ˜์™€ ๋น ๋ฅธ ๊ฐœ๋ฐœ ์†๋„
  • ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜์œผ๋กœ ์‰ฌ์šด ์žฌ์‚ฌ์šฉ์„ฑ
  • ๊ฐ„ํŽธํ•œ ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ์„ ํ•œ ์‰ฌ์šด view ์—…๋ฐ์ดํŠธ
  • ๋™์ผํ•œ ์ฝ”๋“œ ํŒจํ„ด
  • SPA ๊ฐœ๋ฐœ์— ์ตœ์ ํ™”
  • ๋ช…ํ™•ํ•œ ๊ธฐ๋Šฅ์ ์ธ ๋ถ„๋ฆฌ
  • MVC Architecture ๊ตฌํ˜„

์ฐจ์ด์ 

  • ์ตœ์†Œํ•œ์˜ ๋น„์šฉ์œผ๋กœ ๊ณ ์„ฑ๋Šฅ ๋ฐ ๊ธฐ๋Šฅ์„ฑ
  • Typescript๋ฅผ ์ด์šฉํ•œ ์‰ฌ์šด ์œ ์ง€๋ณด์ˆ˜
  • ์„ ์–ธ์  UI
  • ๋‹จ์ˆœํ•œ Architecture

๊ตฌ์„ฑ์š”์†Œ

  1. ์ง€์‹œ์ž(Directive)
    View ์˜์—ญ์œผ๋กœ ํŠน์ •ํ•œ html ํƒœ๊ทธ์— AngularJS ์˜ ๊ธฐ๋Šฅ์„ ์ ์šฉํ•˜๊ณ ์ž ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

  2. ํ•„ํ„ฐ(Filters)
    ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฅผ ํ™”๋ฉด์— ์ถœ๋ ฅํ•˜๋Š”๋ฐ ์žˆ์–ด์„œ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋งŒ์„ ํ•„ํ„ฐ๋งํ•˜์—ฌ ๊ฐ€์ ธ๋‹ค ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ์ด๋‹ค.

  3. ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ(Data Binding)
    ํ‘œ ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ๋“ค์„ ์›ํ•˜๋Š” ์œ„์น˜์— ์‚ฌ์šฉํ•˜๊ธฐ ํŽธํ•˜๊ฒŒ ๋ฐ”์ธ๋”ฉํ•˜๋„๋ก ํ•ด์ค€๋‹ค.

  4. ์ปจํŠธ๋กค๋Ÿฌ(Controller)
    ๋ฉ”์ธ ์ปดํฌ๋„ŒํŠธ๋กœ, ๊ธฐ๋Šฅ๋ณ„๋กœ ๋ฌถ์–ด์„œ ์‚ฌ์šฉํ•˜๋„๋ก ํ•ด์ค€๋‹ค.


๐Ÿ“ Svelte

Svelte๋Š” 2016๋…„ ์ถœ์‹œํ•œ ์˜คํ”ˆ ์†Œ์Šค ์›น ํ”„๋ ˆ์ž„์›Œํฌ๋กœ, ์„ ์–ธ์  ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๊ฐ€์ ธ์™€ DOM์„ ์—…๋ฐ์ดํŠธํ•˜๋Š” JavaScript๋กœ ๋ณ€ํ™˜ํ•˜๋Š” compiler์ด๋‹ค. ๋”ฐ์ง€์ž๋ฉด ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์•„๋‹Œ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋” ์ •ํ™•ํ•œ ํ‘œํ˜„์ด๋‹ค.

ํŠน์ง•

  • ์ ์€ ์–‘์˜ ์ฝ”๋“œ
  • ๋ฒˆ๋“ค ํฌ๊ธฐ ๊ฐ์†Œ
  • ์œ ์ง€ ๋ณด์ˆ˜ ๋น„์šฉ ๊ฐ์†Œ
  • Truly reactive
  • ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜์œผ๋กœ ์‰ฌ์šด ์žฌ์‚ฌ์šฉ์„ฑ

์ฐจ์ด์ 

  • No Virtual DOM
  • ๋‹ค๋ฅธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ•จ๊ป˜ ๋ฐฐํฌํ•  ํ•„์š” X
  • ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ธฐ๋ณธ ๋‚ด์žฅ ex) redux, vuex

๐Ÿ“ Vue.js

Vue.js๋Š” ์›น์—์„œ UI๋ฅผ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•œ ์ ์ง„์ ์ธ JavaScript ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค.

ํŠน์ง•

  • ๊ฐ€๋ณ๊ณ  ๋น ๋ฅธ ์„ฑ๋Šฅ
  • React(Virtual DOM), Angular(๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ)์˜ ์žฅ์ ์„ ๊ฐ€์ ธ์˜ด.
  • ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜์œผ๋กœ ์‰ฌ์šด ์žฌ์‚ฌ์šฉ์„ฑ

์ฐจ์ด์ 

  • Virtual Dom
  • ์–‘๋ฐฉํ–ฅ๊ณผ ๋‹จ๋ฐฉํ–ฅ์˜ ๋ฐ”์ธ๋”ฉ ์ง€์›


๐Ÿ“ Vite

Vite๋Š” ํ”„๋ž‘์Šค์–ด๋กœ "๋น ๋ฅด๋‹ค(Quick)"๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ ๋น ๋ฅด๊ณ  ๊ฐ„๊ฒฐํ•œ ๋ชจ๋˜ ์›น ํ”„๋กœ์ ํŠธ ๊ฐœ๋ฐœ ๊ฒฝํ—˜์— ์ดˆ์ ์„ ๋งž์ถฐ ํƒ„์ƒํ•œ ๋นŒ๋“œ ๋„๊ตฌ์ด๋‹ค.

ํŠน์ง•

  • ๋กœ์ปฌ์—์„œ ๊ฐœ๋ฐœ ์‹œ ๋ฒˆ๋“ค๋ง์„ ํ•˜์ง€ ์•Š์Œ.
  • ESM ๋ฐฉ์‹์œผ๋กœ ์ธํ•œ ๋งค์šฐ ๋น ๋ฅธ ๋กœ์ปฌ ์„œ๋ฒ„ ๊ตฌ๋™ ์†๋„
  • ์ˆ˜๋ฐฑ ๊ฐœ ์ •๋„ ๋˜๋Š” ๋ชจ๋“ˆ์„ ๊ฐ–๊ณ  ์žˆ๋Š” ์›น ์„œ๋น„์Šค๋ฅผ ์›นํŒฉ๊ณผ ๋น„ํŠธ๋กœ ๋น„๊ตํ•ด ๋ณธ๋‹ค๋ฉด ์‹คํ–‰ ์‹œ๊ฐ„์ด ์ˆ˜์‹ญ ๋ฐฐ ์ด์ƒ ์ฐจ์ด๋‚จ.
  • Vue ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋Œ€๋ถ€๋ถ„์˜ ํ”„๋ก ํŠธ์—”๋“œ ํ”„๋ ˆ์ž„์›Œํฌ ์ง€์›ํ•จ.

๐Ÿช„ ๋งˆ์น˜๋ฉด์„œ

vite๊ฐ€ ๋นŒ๋“œ ๋„๊ตฌ์ด๋ฉด ์•ž์„œ ๊ณต๋ถ€ํ•œ npm๊ณผ ๊ฐ™์€ JavaScript ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €๋ž‘ ๊ฐ™์ด ์‚ฌ์šฉํ•˜๋ฉฐ ๊ฐœ๋ฐœํ•˜๋Š” ๊ฒƒ์ธ๊ฐ€? ๋นŒ๋“œ๋Š” vite๊ฐ€, ์˜์กด์„ฑ๊ณผ ๋ชจ๋“ˆ ๋“ฑ์„ ๊ด€๋ฆฌํ•  ๋• npm์ด ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ์ผ๊นŒ? ์•„์ง ํ”„๋ ˆ์ž„์›Œํฌ๋„ ๊ทธ๋ ‡๊ณ  ๋‹ค ์ฒ˜์Œ ๋“ค์–ด๋ณด๋Š” ์ƒ์†Œํ•œ ๊ฒƒ๋“ค ๋ฟ์ด๋ผ ๊ณต๋ถ€๊ฐ€ ๋งŽ์ด ํ•„์š”ํ•  ๊ฒƒ ๊ฐ™๋‹ค..

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