02. React State

thinking in React - ui์ƒํƒœ์˜ ํ‘œํ˜„์„ ์ฐพ์•„๋ผ - ์ƒํƒœ๋ฅผ ์ฐพ์ž๋Š” ๊ฑฐ์ฃ . ์–ดใ…ฃ๋””์— ์žˆ๊ฒŒ ํ•  ๊ฑด์ง€ ๊ฒฐ์ •ํ•ด๋ผ. ๊ทธ๋‹ค์Œ์— ๋ฐ์ดํ„ฐflow ๋ฅผ ๋„ฃ์–ด๋ผ..

  • React state๋ž€? ๋ณ€๊ฒฝ์„ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•œ ์š”์†Œ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•ด์„œ ๋‹ค ๋˜๋Š” ๊ฒƒ์€ ์•„๋‹˜ - ๋ฆฌ๋ Œ๋”๋ง๋˜์–ด์•ผํ•˜๋Š” ์š”์†Œ๊ฐ€ ๋ญ๋ƒ์ƒํƒœ๊ฐ€ ๋ฐ”๋€Œ๋ฉด ํ•˜์œ„์— ์žˆ๋Š”๊ฒŒ ๋‹ค ๋ฐ”๋€๋‹ค... ์ผ๊ด€์„ฑ ์ด๋Ÿฐ๊ฒƒ๋“ค์„ ์œ„ํ•ด์„œ๋„..

  • DRY ์›์น™ Don't Repeat Yourself

์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“ค ๋•Œ๋งˆ๋‹ค ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ ๊ทธ๋ƒฅ ๋„ฃ์ง€ ใ…‡์•Š๊ณ (ํ•˜๋“œ์ฝ”๋”ฉ) ํ•„ํ„ฐ๋ฅผ ์จ์„œ '๋งŒ๋“ค์–ด' ๋ƒˆ์ž–์Šด ํ•ญ์ƒ ๋‹ค์‹œ ๊ทธ๋ ค์•ผํ•  ๋•Œ๋งˆ๋‹ค ์ค‘๋ณต์œผ๋กœ ๊ฐ–๊ณ ์žˆ๋Š” ๊ฑฐ์ž–์•„์š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ทธ๋Ÿผ ํ‹€๋ฆด ์ˆ˜๋„ ์žˆ๋Š”๊ฑฐ์˜ˆ์š” ๊ทธ๋ž˜์„œ DRYํ•˜๊ฒŒ ๋งŒ๋“ค๋ผ๋Š” ๊ฑฐ์˜ˆ์š”

  • SSOT (Single Source of Truth) ( ๋‹จ์ผ ์ง„์‹ค ๊ณต๊ธ‰์›)

  • ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์œผ๋ฉด ์ƒํƒœ ์•„๋‹˜

  • ๊ณ„์‚ฐ ๊ฐ€๋Šฅํ•˜๋ฉด ์ƒํƒœ ์•„๋‹˜

  • ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ๊ฐ€ props๋กœ ์ „๋‹ฌํ•œ๋‹ค๋ฉด ์ƒํƒœ ์•„๋‹˜

์ƒํƒœ๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์œผ๋ฉด ๋ณต์žกํ•ฉ๋‹ˆ๋‹ค. ์ง์ ‘ ๊ด€๋ฆฌํ•˜๋Š” ์ƒํƒœ์˜ ์ˆ˜๋ฅผ ์ค„์—ฌ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Props๋กœ ์ „๋‹ฌํ•ด์ค„ ๋•Œ type์„ ์ž˜ ์ •์˜ํ•ด๋†“์œผ๋ฉด ๋ณต์žกํ•ด์ ธ๋„ ์ •๋ฆฌ๊ฐ€ ์ž˜ ๋˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Œ..

  • ์ƒํƒœ์˜ ๊ด€๋ฆฌ์ฃผ์ฒด ๊ฒ€์ƒ‰์–ด, ์ฒดํฌ๋ฐ•์Šค, ๋ฐ”๋€Œ๋Š”๋ฐ ๊ทธ๋Ÿผ ์ด๊ฑธ ๋ˆ„๊ฐ€ ๊ด€๋ฆฌํ•˜๋ฉด ์ข‹์„๊นŒ์š”?? ์ž…๋ ฅํ•ด์š”. ํƒ€์ดํ•‘๋ง‰ ํ•ด์š”. ์ฒดํฌ๋ฐ•์Šค๋ฅผ ์˜จ์˜คํ”„ํ•ด์š”. ์ปดํฌ๋„ŒํŠธ๋กœ ๊ฐ€๋ด์š”.

  • ?! props, state ๋ณ€๊ฒฝ์— ๋”ฐ๋ผ ๋˜๋‹ค๋ฅธ state๋ฅผ ๋ณ€๊ฒฝํ•ด์ค˜์•ผ ํ•  ๋•Œ, useEffect๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ๋ผ?!?!?!?!? ๋‚˜ ๊ณ„์† ์ผ๋Š”๋ฐ ์ƒํƒœ๋ณ€๊ฒฝ์ด ์ผ์–ด๋‚˜๋ฉด ๋ฆฌ์•กํŠธ๋Š” ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๋ฒ„์ธ„์–ผ๋”์— ์ €์žฅํ•˜๊ณ , ๊ทธ ์ดํ›„์— ui๋ฅผ ์—…๋ฐ์ดํŠธํ•จ๋‹ˆ๋‹ค. ์ด ๋‘ ๊ณผ์ •์ด ์ƒํƒœ๋ณ€๊ฒฝ์ด ์ผ์–ด๋‚  ๋•Œ๋งˆ๋‹ค ๋ฐœ์ƒํ•˜๋Š”๋ฐ, ์ƒํƒœ๋ณ€๊ฒฝ์„ 2, 3๋ฒˆ ํ•˜๋ฉด 2**n ๋ฒˆ ์ˆ˜ํ–‰๋  ๊ฑฐ์•„๋‹™๋‹ˆ๊นŒ! ์ƒํƒœ๊ฐ€ ๋ณ€ํ•˜๋ฉด ๊ทธ์™€ ๊ด€๋ จ๋œ ๋ชจ-๋“  ui์š”์†Œ๊ฐ€ ๋ฆฌ๋ Œ๋”๋ง ๋˜๋ฏ€๋กœ, ๋‹ค๋ฅธ ๋ณ€์ˆ˜์— ํ™œ์šฉํ•˜์—ฌ ์ €์žฅํ•ด์ค˜์•ผํ•ฉ๋‹ˆ๋‹ค!!! ๊ทธ๋Ÿฐ๋ฐ ์ด ํ™œ์šฉ๊ณผ์ •์—์„œ ๋น„์‹ผ ์—ฐ์‚ฐ์ด ํฌํ•จ๋œ๋‹ค๋ฉด, useMemo๋ฅผ ์‚ฌ์šฉํ•ด์ฃผ์„ธ์š”.

  • useState

  • 1๊ธ‰ ๊ฐ์ฒด(first-class object)๋ž€?

  • Lifting State Up

๋ฆฌ์•กํŠธ๊ฐ€ ์•„๋‹Œ ใ„ด๊ณณ์—์„œ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ

Last updated