๐ŸŽ„ ์„ฑ์žฅ์ผ์ง€ 4.0

์ฑ… ํ–‰๋ณตํ•œ ์ด๊ธฐ์ฃผ์˜์ž(์›จ์ธ ๋‹ค์ด์–ด)์˜ ๋‚ด์šฉ์— ์ž๊ทน๋ฐ›์•„ ์‹œ์ž‘ํ•˜๋Š” ์†Œ๋ฐ•ํ•œ ์„ฑ์žฅ๊ธฐ๋ก

์‚ด์•„์žˆ๋Š” ๊ฝƒ๊ณผ ์ฃฝ์€ ๊ฝƒ์€ ์–ด๋–ป๊ฒŒ ๊ตฌ๋ณ„ํ•˜๋Š”๊ฐ€?
์„ฑ์žฅํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์ด ์‚ด์•„ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.
์ƒ๋ช…์˜ ์œ ์ผํ•œ ์ฆ๊ฑฐ๋Š” ์„ฑ์žฅ์ด๋‹ค!

๐ŸŒณ (1.0)ํ‚ค์›Œ๋“œ
์ตœ๋Œ€ํ•œ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ •๋ฆฌ, ์ถ”ํ›„์— ๋ณด๋ฉด์„œ ์Šค์Šค๋กœ ์„ค๋ช…
๐Ÿ‰ (2.0)๊ฒฝํ—˜ ์œ„์ฃผ๋กœ
๋‹จ์ˆœ ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•˜๊ธฐ๋ณด๋‹ค ๋ฌด์—‡์„ ๋ฐฐ์› ๊ณ  ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐํ–ˆ๋Š”์ง€ ์งง๊ณ  ๊ฐ„๋‹จํ•˜๊ฒŒ ์ž‘์„ฑ
โ„๏ธ (3.0)์ •ํ•ด์ง„ ํ…œํ”Œ๋ฆฟ์— ๋งž์ถฐ์„œ
ํ‚ค์›Œ๋“œ, ๊ฒฝํ—˜ ๋ชจ๋‘ ์ข‹๋‹ค. ๋‹ค๋งŒ ๋งค์ผ ์ž‘์„ฑํ•˜๊ธฐ๋กœ ๋งˆ์Œ ๋จน์€๋งŒํผ ํ•ต์‹ฌ๋งŒ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ์ •๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ…œํ”Œ๋ฆฟ์„ ์ž‘์„ฑ
(3.1)230102๋ถ€ํ„ฐ ์‹œ์ž‘๋˜๋Š” ํ•™์Šต์— ๊ด€ํ•œ ๋‚ด์šฉ ์ถ”๊ฐ€
(3.2)230313๋ถ€ํ„ฐ ์ข€๋” ๊ฒฝํ—˜, ๊ฐ์ • ์œ„์ฃผ์˜ ๋‚ด์šฉ๋„ ๋‹ด๊ธฐ!
๐ŸŒพ (4.0)ํ•™์Šต ํ‚ค์›Œ๋“œ์—์„œ ์ตœ๋Œ€ํ•œ ๊ฐ„๋‹จํ•œ ์ •๋ณด ์ œ๊ณต, ๊ณ ๋ฏผ์—์„œ ๋‚ด ๊ฒฝํ—˜์„ ์ž์„ธํžˆ ์ ์ž!

๐Ÿ”‘ ์˜ค๋Š˜์˜ ํ•™์Šต ํ‚ค์›Œ๋“œ

๋ฐ€๋ ธ๋˜ ๊ณ ๋ฏผ์˜ ํ”์ ๋“ค์„ ํ•œ๋ฒˆ์— ์—…๋กœ๋“œํ•ด๋ณด๊ธฐ

4.10(์›”)

๊ณ ๋ฏผ ์‚ฌํ•ญ

1. ์ ์  ๊นŠ์–ด์ง€๋Š” ํด๋”๊ตฌ์กฐโ€ฆ ์–ด๋–ป๊ฒŒ ๊ด€๋ฆฌํ• ๊นŒ..?

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2023-04-12 21 12 57

์œ„์™€ ๊ฐ™์ด ํด๋” ํ•˜๋‚˜ ๋‹น MVC ํŒจํ„ด์œผ๋กœ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ตฌํ˜„ํ•˜๋‹ค๋ณด๋‹ˆ, ์ ์  ํด๋”๊ฐ€ ๋„ˆ๋ฌด ๊นŠ์–ด์ง€๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค. Model, View, Controller(์—ฌ๊ธฐ์„  Component)๋งˆ๋‹ค ํด๋”๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ๊ฒ ์ง€๋งŒ, ์˜คํžˆ๋ ค ์ปดํฌ๋„ŒํŠธ ๋‹จ์œ„์—์„œ๋Š” ์กฐ๊ธˆ ์ง€์ €๋ถ„ํ•˜๋”๋ผ๋„ Component๋‹จ์œ„๋กœ ํ•˜๋Š” ๊ฒŒ ์ผ๋‹จ์€ ๋‚˜์€ ๊ฒƒ ๊ฐ™๋‹ค!

4.11(ํ™”)

๊ณ ๋ฏผ ์‚ฌํ•ญ

1. ์™œ ๊ณ„์† msw๊ฐ€ import ๋˜์ง€ ์•Š๋Š” ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ• ๊นŒ..?!

์ •๋ง ๋ชจ๋“  ์กฐ๊ฑด ๋‹ค ๊ฐ–์ถ”๊ณ  ๊ณต์‹๋ฌธ์„œ์—์„œ ํ•˜๋ผ๋Š”๋Œ€๋กœ ๋‹ค ํ–ˆ๋Š”๋ฐโ€ฆ ๊ณ„์† resolve failed msw ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. ์ตœ๊ทผ release note(๊ฐ€์žฅ ์ตœ์‹ ์ธ v1.2.1)๋ฅผ ๋ณด๋‹ˆ๊นŒ ์•ฝ 10์ผ ์ „์— import msw ์—๋Ÿฌ๊ฐ€ ์ˆ˜์ •๋˜์—ˆ๋‹ค๋ผ๋Š” ๋ฌธ๊ตฌ๊ฐ€ ์žˆ๋Š”๋ฐโ€ฆ ์ด ๋ฌธ์ œ์ธ์ง€ ๊ณ„์† ๋˜์งˆ ์•Š๋Š”๋‹ค. ๊ทธ๋Ÿฌ๋‹ค ๋Œ€๋ถ€๋ถ„ react์—์„œ msw๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์˜ˆ์ œ๊ฐ€ ์žˆ๊ธธ๋ž˜ ํ˜น์‹œ๋‚˜ ํ•ด์„œ cra๋กœ ํด๋”๋ฅผ ๋งŒ๋“ค๊ณ  ๊ฑฐ๊ธฐ์— msw๋ฅผ ์„ค์น˜ํ•˜๋‹ˆ, ์•„๋ฌด์ผ๋„ ์—†๋‹ค๋Š” ๋“ฏ์ด ์ž˜ mocking์ด ๋œ๋‹คโ€ฆ ์ •ํ™•ํ•œ ์›์ธ์€ ๋ชจ๋ฅด๊ฒ ์œผ๋‚˜ ์ผ๋‹จ ๋ฒˆ๋“ค๋Ÿฌ์˜ ์œ ๋ฌด๊ฐ€ ์ฐจ์ด๋ฅผ ๋งŒ๋“  ๊ฒŒ ์•„๋‹๊นŒ ์‹ถ๋‹ค..!

2. ์–ด๋””๊นŒ์ง€๊ฐ€ state๊ณ  ์–ด๋””๊นŒ์ง€๊ฐ€ props์ธ๊ฐ€

์ •๋ง ๋‹จ์ˆœํ•˜๊ฒŒ ์ƒ๊ฐํ•˜๋ฉด ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ์—์„œ ์ž์‹ ์ปดํฌ๋„ŒํŠธํ•œํ…Œ ์ „๋‹ฌํ•  data๋Š” props, ์ปดํฌ๋„ŒํŠธ ์ž์ฒด๊ฐ€ ๊ฐ–๊ณ  ์žˆ์œผ๋ฉด์„œ ๋ณ€๊ฒฝํ•  data๋Š” state์ด๋‹ค. ๋ฌธ์ œ๋Š” ์ข€๋” ๊ทผ๋ณธ์ ์œผ๋กœ ์ด data๋ฅผ ์–ด๋–ค ์ปดํฌ๋„ŒํŠธ์—์„œ ๊ด€๋ฆฌํ•˜๊ณ  ์‚ฌ์šฉํ• ๊ฑด๋ฐ?์—์„œ ์‹œ์ž‘๋˜๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ๊ทธ๋ž˜์•ผ๋งŒ ์ด๊ฑธ props๋กœ ์ „๋‹ฌํ• ์ง€, ํ˜น์€ state๋กœ ์Šค์Šค๋กœ ๊ด€๋ฆฌํ•˜๊ฒŒ ํ• ์ง€ ์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋˜, ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ์—์„œ ๋ฐ์ดํ„ฐ๋งŒ ๋‹ค๋ฅธ ๋™์ผํ•œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“ค์–ด์•ผํ•  ๋•Œ๋Š” ๋ฌด์กฐ๊ฑด props๋กœ ์ „๋‹ฌํ•ด์•ผํ•œ๋‹ค. ๊ทธ๋ž˜์•ผ๋งŒ ๊ฐ™์€ ์ปดํฌ๋„ŒํŠธ ํด๋ž˜์Šค ํ˜น์€ ํ•จ์ˆ˜๊ฐ€ ๋‹ค๋ฅธ data๋ฅผ ์ธ์ž๋กœ ๋ฐ›์•„์„œ ์ƒ๊ธด ๊ฒŒ ๋‹ค๋ฅธ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค์–ด๋‚ผ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค!

4.12(์ˆ˜)

๊ณ ๋ฏผ ์‚ฌํ•ญ

1. ๊ฐ๊ฐ์˜ element์— event๋Š” ์–ด๋–ป๊ฒŒ ๋“ฑ๋กํ• ๊นŒ..?

์ฒ˜์Œ์—” view์—์„œ event ๋“ฑ๋ก๋ถ€ํ„ฐ ํ•ธ๋“ค๋Ÿฌ ๊ด€๋ฆฌ๊นŒ์ง€ ์ „๋ถ€ํ•˜๋ ค ํ–ˆ๋‹ค. view๊ฐ€ ์ข€ ์ปค์ง€๊ฒ ์ง€๋งŒ, ๊ทธ๋ ‡๊ฒŒ ํ•˜๋Š” ๊ฒŒ ์ข€๋” ์ง๊ด€์ ์ด๊ณ  ํŽธํ•œ ๋Š๋‚Œ..? ๊ทธ๋Ÿฌ๋‹ค ๋ฌธ๋“ ๋ฆฌ์•กํŠธ์—์„œ onclick์œผ๋กœ ์ „๋‹ฌํ•˜๋Š” ํ•ธ๋“ค๋Ÿฌ๋„ ํ•˜๋‚˜์˜ props ์ฆ‰, ์ƒํƒœ๋ผ๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. ํ•ด์„œ component ๋‹จ์—์„œ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ๋ฉ”์„œ๋“œ๋กœ ๊ตฌํ˜„ํ•˜๊ณ  ์ด๋ฅผ setState๋ฅผ ํ†ตํ•ด ์ „๋‹ฌํ•˜๋ฉด ์ด ํ•ธ๋“ค๋Ÿฌ๋ฅผ ๋ฐ›์•„์„œ view์—์„œ ์ด๋ฒคํŠธ๋ฅผ ๋“ฑ๋กํ•˜๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ง€๊ธˆ ๋‚ด๊ฐ€ ๊ตฌํ˜„ํ•˜๋Š” ์ฝ”๋“œ์—์„œ component๊ฐ€ ๋„ˆ๋ฌด ์ปค์ง€๋Š” ๋Š๋‚Œ์ด์ง€๋งŒ, ์ด๊ฒŒ ์ข€๋” ๋ฆฌ์•กํŠธ ์ปดํฌ๋„ŒํŠธ์Šค๋Ÿฝ๊ฒŒ ๊ตฌํ˜„ํ•œ ๊ฒƒ ๊ฐ™๋‹ค.

๐Ÿ“ ์š”์•ฝ ๋ฐ ํ•˜๋ฃจ ๊ฐ„๋‹จ ํšŒ๊ณ 

MVC ํŒจํ„ด์œผ๋กœ ๋งŽ์ด ๊ณ ์ƒํ–ˆ์ง€๋งŒโ€ฆ(์†”์งํžˆ ์ด์ œ๋Š” ์•ˆ๋ณด๊ณ  ์‹ถโ€ฆ) ๋•๋ถ„์— ๊ฐœ๋ฐœ์—์„œ ์„ค๊ณ„, ์•„ํ‚คํ…์ณ, ๋””์ž์ธ ํŒจํ„ด์ด ์–ผ๋งˆ๋‚˜ ์ค‘์š”ํ•œ์ง€ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค. ํ™•์‹คํžˆ ์–ด๋– ํ•œ ๊ทœ์น™์„ ๊ฐ–๊ณ  ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•˜๋‹ˆ, ์ถ”ํ›„์— ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜๊ธฐ๊ฐ€ ์ •๋ง์ •๋ง ํŽธํ•˜๋‹ค. ๋„ˆ๋ฌด ํฌ๊ฒŒ ์ž์œ ๋„๋ฅผ ํ•ด์น˜๋ฉด ์•ˆ๋˜๊ฒ ์ง€๋งŒ, ์ ๋‹นํ•œ ๋ฒ”์œ„์—์„œ ์–ด๋–ค ํŒจํ„ด๋Œ€๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•๋“ค์€ ์•„์ฃผ ์œ ์šฉํ•œ ๊ฒƒ ๊ฐ™๋‹ค.

์˜ค๋Š˜์€ ์ ์‹ฌ์œผ๋กœ ๋งˆ๋ผ์ƒน๊ถˆ๋ฅผ ๋จน์—ˆ๋Š”๋ฐ, ๋„ˆ๋ฌด ๋งค์› ๋‹ค. ์ง€๊ธˆ ์ด ๊ธ€์„ ์ ๋Š” ์ˆœ๊ฐ„์—๋„ ์†์ด ๋ถ€๊ธ€๋ถ€๊ธ€โ€ฆ ๋‹น๋ถ„๊ฐ„ ๋งค์šด ๊ฑด ํ”ผํ•ด์•ผ์ง€.

์˜ค๋Š˜์˜ ์ž˜ํ•œ ์ 

  • MVC ํŒจํ„ด์„ ์‚ฌ์šฉํ•ด์„œ ๋ฏธ์…˜๋“ค์„ ํ•ด๊ฒฐํ•œ ์ 
  • ์ด ๋•Œ, state๋กœ(์ •ํ™•ํžˆ๋Š” props๋กœ) ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์ „๋‹ฌํ•˜๊ณ  View์—์„œ๋Š” ์ด๋ฒคํŠธ ๋“ฑ๋ก๋งŒ ํ•˜๊ฒŒ ํ•œ๊ฑฐ!(์—ญํ•  ๋ถ„๋ฆฌ๊ฐ€ ์ž˜ ๋œ ๋Š๋‚Œ)

์˜ค๋Š˜์˜ ๋ณด์™„ํ•  ์ 

  • Flux ์•„ํ‚คํ…์ฒ˜ ๊ณต๋ถ€๋ฅผ ๋ชปํ–ˆ๋‹ค. ๋‚ด์ผ๋ถ€ํ„ฐ Flux ์•„ํ‚คํ…์ฒ˜ ๊ณต๋ถ€ํ•˜๊ณ  ์ง์ ‘ ๊ตฌํ˜„๋„ ์กฐ๊ธˆ์€ ํ•ด๋ณด์ž!

์ฐธ๊ณ 

  • ์—†์Œ