⚛️ ๋ฆฌ์•กํŠธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ธํŒ…: CRA vs Vite

โš›๏ธ ๋ฆฌ์•กํŠธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ธํŒ…: CRA vs Vite

๐ŸŽฏ ํ”„๋ก ํŠธ์—”๋“œ์˜ ์‹ฌ์žฅ: ์ƒํƒœ ๊ด€๋ฆฌ ์ตœ์ ํ™”์™€ ์›น ์–ด์…ˆ๋ธ”๋ฆฌ ์ตœ์‹  ๋™ํ–ฅ ๋ถ„์„

๐Ÿš€๋ณต์žกํ•ด์ง€๋Š” ํ”„๋ก ํŠธ์—”๋“œ, ํ•ต์‹ฌ์€ ๋ฌด์—‡์ธ๊ฐ€?

์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋ณต์žกํ•ด์ง€๊ณ  ๊ธฐ๋Šฅ์ด ๋ฐฉ๋Œ€ํ•ด์ง€๋ฉด์„œ ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์˜ ์ค‘์š”์„ฑ์€ ๊ทธ ์–ด๋А ๋•Œ๋ณด๋‹ค ์ปค์กŒ์Šต๋‹ˆ๋‹ค.
ํŠนํžˆ์ดˆ๋ณด ๊ฐœ๋ฐœ์ž์™€ IT ๊ด€๋ฆฌ์ž์˜ ์ž…์žฅ์—์„œ,
์ˆ˜๋งŽ์€ ๋ฐ์ดํ„ฐ์™€ ์‚ฌ์šฉ์ž ์ธํ„ฐ๋ž™์…˜์„ ์–ด๋–ป๊ฒŒ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ณ  ๋ฏธ๋ž˜ ๊ธฐ์ˆ  ๋ณ€ํ™”์— ๋Œ€๋น„ํ•ด์•ผ ํ• ๊นŒ์š”?
์ด ๊ฒŒ์‹œ๋ฌผ์€ ํ˜„๋Œ€ ํ”„๋ก ํŠธ์—”๋“œ์˜ ๋‘ ๊ฐ€์ง€ ํ•ต์‹ฌ ์ถ•์ธ ์ƒํƒœ ๊ด€๋ฆฌ(State Management)์˜ ๊นŠ์ด ์žˆ๋Š” ์ดํ•ด์™€ ์ฐจ์„ธ๋Œ€ ์›น ๊ธฐ์ˆ ์ธ ์›น ์–ด์…ˆ๋ธ”๋ฆฌ(WebAssembly, Wasm)์˜ ์ตœ์‹  ๋™ํ–ฅ์„ ๋ช…ํ™•ํ•˜๊ฒŒ ์ œ์‹œํ•˜์—ฌ ๋‹น์‹ ์˜ ๊ธฐ์ˆ ์  ํ†ต์ฐฐ๋ ฅ์„ ํ™•์žฅํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ’ก ํ•ต์‹ฌ ํฌ์ธํŠธ:

  • ์‚ฌ์šฉ์ž ๊ฒฝํ—˜(UX)์€ ๋ฐ์ดํ„ฐ์˜ ์ผ๊ด€์„ฑ์—์„œ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.
  • ๋ณต์žกํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ผ์ˆ˜๋ก ๋ฐ์ดํ„ฐ ํ๋ฆ„์„ ์ฒด๊ณ„์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ํ”„๋กœ์ ํŠธ ์„ฑ๊ณต์˜ ์—ด์‡ ์ž…๋‹ˆ๋‹ค.

๐Ÿงฉ Part 1. ํ”„๋ก ํŠธ์—”๋“œ ์ƒํƒœ ๊ด€๋ฆฌ (State Management) ์‹ฌ์ธต ๋ถ„์„

1.1. ์ƒํƒœ ๊ด€๋ฆฌ๋ž€ ๋ฌด์—‡์ด๋ฉฐ ์™œ ํ•„์š”ํ•œ๊ฐ€?

ํ”„๋ก ํŠธ์—”๋“œ์—์„œ '์ƒํƒœ(State)'๋Š” ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค(UI)๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ชจ๋“  ๋ฐ์ดํ„ฐ-์‚ฌ์šฉ์ž ์ •๋ณด, ๋กœ๋”ฉ ์ƒํƒœ, ๋ชจ๋‹ฌ ์ฐฝ์˜ ์—ด๋ฆผ/๋‹ซํž˜ ์—ฌ๋ถ€๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. 
์ƒํƒœ ๊ด€๋ฆฌ๋Š” ์ด๋Ÿฌํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ผ๊ด€์„ฑ ์žˆ๊ณ  ์˜ˆ์ธก ๊ฐ€๋Šฅํ•œ ๋ฐฉ์‹์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•๋ก ์ž…๋‹ˆ๋‹ค. 
๋Œ€๊ทœ๋ชจ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ๋Š” ์ปดํฌ๋„ŒํŠธ ๊ฐ„ ๋ฐ์ดํ„ฐ ๊ณต์œ ๊ฐ€ ๋ณต์žกํ•ด์ง€๊ธฐ ๋•Œ๋ฌธ์—, 
์ค‘์•™ ์ง‘์ค‘์‹ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์ด ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค.
๐Ÿ“ ์ƒํƒœ ๊ด€๋ฆฌ ํ•„์š”์„ฑ ์š”์•ฝ
ํ•ญ๋ชฉ ์„ค๋ช…
์œ ์ง€๋ณด์ˆ˜์„ฑ ํ–ฅ์ƒ ๋ฐ์ดํ„ฐ ํ๋ฆ„์ด ๋ช…ํ™•ํ•ด์ ธ ๋ฒ„๊ทธ ์ถ”์  ๋ฐ ์ˆ˜์ •์ด ์šฉ์ดํ•ฉ๋‹ˆ๋‹ค.
๋””๋ฒ„๊น… ํšจ์œจ์„ฑ ์‹œ๊ฐ„ ์—ฌํ–‰ ๋””๋ฒ„๊น… ๋“ฑ ์ „๋ฌธ ๋„๊ตฌ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•ด์ง‘๋‹ˆ๋‹ค.
ํ˜‘์—… ์šฉ์ด์„ฑ ์ผ๊ด€๋œ ํŒจํ„ด์œผ๋กœ ๊ฐœ๋ฐœํŒ€ ๊ฐ„์˜ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ๋น„์šฉ์ด ๊ฐ์†Œํ•ฉ๋‹ˆ๋‹ค.

1.2. ๋Œ€ํ‘œ์ ์ธ ์ƒํƒœ ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋น„๊ต (Redux vs. MobX)

ํ˜„์žฌ ํ”„๋ก ํŠธ์—”๋“œ ์ƒํƒœ๊ณ„์—์„œ ๊ฐ€์žฅ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ๋‘ ๊ฐ€์ง€ ํŒจ๋Ÿฌ๋‹ค์ž„์€ Redux์™€ MobX์ž…๋‹ˆ๋‹ค. 
๋‘ ๋ฐฉ์‹์€ ์ƒํƒœ๋ฅผ ๋‹ค๋ฃจ๋Š” ์ฒ ํ•™์ด ์™„์ „ํžˆ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

Redux: ๋‹จ๋ฐฉํ–ฅ ๋ฐ์ดํ„ฐ ํ๋ฆ„์˜ ์ •์„

  • ํŒจ๋Ÿฌ๋‹ค์ž„: ๋ถˆ๋ณ€์„ฑ(Immutable) ๊ธฐ๋ฐ˜, Flux ์•„ํ‚คํ…์ฒ˜
  • ์ž‘๋™ ์›๋ฆฌ: Action → Dispatcher → Reducer → State (์˜ˆ์ธก ๊ฐ€๋Šฅ์„ฑ ๊ทน๋Œ€ํ™”)
  • ์žฅ์ : ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ ์ด๋ ฅ ์ถ”์ ์ด ์™„๋ฒฝํ•˜์—ฌ ๋””๋ฒ„๊น…์— ์œ ๋ฆฌ
  • ๋‹จ์ : ์„ค์ • ๋ฐ ๋ณด์ผ๋Ÿฌํ”Œ๋ ˆ์ดํŠธ ์ฝ”๋“œ๊ฐ€ ๋งŽ์•„ ์ดˆ๊ธฐ ์ง„์ž… ์žฅ๋ฒฝ์ด ๋†’์Œ

MobX: ๊ด€์ฐฐ ๊ฐ€๋Šฅํ•œ ๋ฐ์ดํ„ฐ์˜ ์œ ์—ฐ์„ฑ

  • ํŒจ๋Ÿฌ๋‹ค์ž„: ๊ฐ€๋ณ€์„ฑ(Mutable) ๊ธฐ๋ฐ˜, ๋ฐ˜์‘ํ˜•(Reactive) ํ”„๋กœ๊ทธ๋ž˜๋ฐ
  • ์ž‘๋™ ์›๋ฆฌ: Observable State → Action → Computed Value → Reaction
  • ์žฅ์ : ์ตœ์†Œํ•œ์˜ ์ฝ”๋“œ๋กœ ๊ตฌํ˜„ ๊ฐ€๋Šฅ, ๋Ÿฌ๋‹ ์ปค๋ธŒ๊ฐ€ ๋‚ฎ์•„ ์ƒ์‚ฐ์„ฑ์ด ๋†’์Œ
  • ๋‹จ์ : ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ์ด ์‰ฌ์šด ๋งŒํผ ์ถ”์ ์ด ๋ณต์žกํ•ด์งˆ ์ˆ˜ ์žˆ์Œ


๐ŸŒŸ ๋ฏธ๋ž˜ IT ํ™˜๊ฒฝ์„ ์œ„ํ•œ ๊ธฐ์ˆ ์  ํ†ต์ฐฐ

์˜ค๋Š˜ ์šฐ๋ฆฌ๋Š” ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์˜ ๋‚ด๋ถ€์ ์ธ ์•ˆ์ •์„ฑ(์ƒํƒœ ๊ด€๋ฆฌ)๊ณผ ์™ธ๋ถ€์ ์ธ ์„ฑ๋Šฅ ํ•œ๊ณ„(์›น ์–ด์…ˆ๋ธ”๋ฆฌ)๋ฅผ ๋™์‹œ์— ํ˜์‹ ํ•˜๋Š” ๋‘ ๊ฐ€์ง€ ํ•ต์‹ฌ ๊ธฐ์ˆ  ํŠธ๋ Œ๋“œ๋ฅผ ์‹ฌ์ธต์ ์œผ๋กœ ์‚ดํŽด๋ณด์•˜์Šต๋‹ˆ๋‹ค.

✅ ์ตœ์ข… ์š”์•ฝ ๋ฐ ์‹ค์ฒœ ๊ฐ€์ด๋“œ

  • 1. ์ƒํƒœ ๊ด€๋ฆฌ ์„ ํƒ: ํ”„๋กœ์ ํŠธ์˜ ๊ทœ๋ชจ์™€ ํŒ€์˜ ์ˆ™๋ จ๋„์— ๋”ฐ๋ผ Redux(์—„๊ฒฉํ•œ ์ผ๊ด€์„ฑ)์™€ MobX(์œ ์—ฐํ•œ ์ƒ์‚ฐ์„ฑ) ์ค‘ ์ตœ์ ์˜ ๋„๊ตฌ๋ฅผ ์„ ํƒํ•˜์‹ญ์‹œ์˜ค.
  • 2. Wasm ํ™œ์šฉ์„ฑ: ๊ณ ์„ฑ๋Šฅ์ด ํ•„์š”ํ•œ ํŠน์ • ๋ชจ๋“ˆ(๊ทธ๋ž˜ํ”ฝ, ์•”ํ˜ธํ™”, ๊ณ„์‚ฐ ์ง‘์•ฝ์  ์ž‘์—…)์— ํ•œํ•ด ๋ถ€๋ถ„์ ์œผ๋กœ Wasm์„ ๋„์ž…ํ•˜๋Š” ์ „๋žต์„ ๊ณ ๋ คํ•˜์‹ญ์‹œ์˜ค.
  • 3. ์ง€์†์ ์ธ ํ•™์Šต: ์ด ๋‘ ๊ธฐ์ˆ  ๋ถ„์•ผ๋Š” ๋น ๋ฅด๊ฒŒ ์ง„ํ™”ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ด€๋ จ ์ปค๋ฎค๋‹ˆํ‹ฐ์™€ ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ํ†ตํ•ด ์ตœ์‹  ์—…๋ฐ์ดํŠธ๋ฅผ ๊พธ์ค€ํžˆ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.
์ด์ œ ๋‹น์‹ ์€ ํ˜„๋Œ€ ์›น ๊ฐœ๋ฐœ์˜ ์ค‘์š”ํ•œ ํ๋ฆ„์„ ์ดํ•ดํ•˜๋Š” ์ „๋ฌธ๊ฐ€์  ์‹œ๊ฐ์„ ๊ฐ–๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
์ด๋Ÿฌํ•œ ์ง€์‹์„ ๋ฐ”ํƒ•์œผ๋กœ ๋”์šฑ ํšจ์œจ์ ์ด๊ณ  ๊ฐ•๋ ฅํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์„ค๊ณ„ํ•˜๊ณ  ์šด์˜ํ•˜์‹œ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

๋Œ“๊ธ€ ์“ฐ๊ธฐ