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

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

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

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

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

useEffect์— ๋Œ€ํ•œ ๊ณ ์ฐฐ

์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์—์„œ ๋งˆ์ง€๋ง‰ ์ฃผ์ฐจ ๋•Œ ๋ฌด์Šจ ์ฝ”๋”ฉ ๊ธฐ๊ณ„ ๋งˆ๋ƒฅ ๊ตฌํ˜„์— ์ง‘์ค‘ํ•˜๋‹ค๋ณด๋‹ˆ ๊นจ๋‹ฌ์€ ๊ฒŒ ํ•˜๋‚˜ ์žˆ๋‹ค. ๋ฆฌ์•กํŠธ์˜ ํ•จ์ˆ˜ ์ปดํฌ๋„ŒํŠธ์—์„œ ์ด useEffect๋ผ๋Š” ๋…€์„์ด ์ฐธ ๋ผ๋ฉด ์Šคํ”„ ๊ฐ™๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์ด useEffect๋Š” ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ Œ๋”๋ง์ด ๋๋‚œ ์งํ›„ ํŠน์ • ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก ํ•  ์ˆ˜ ์žˆ๋Š” Hook์ด๋‹ค. ์ด๋ฆ„์—์„œ ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด effect ์ฆ‰, side effect๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ๋ฆฌ์•กํŠธ๋Š” ui๋ฅผ ๊ทธ๋ฆฌ๊ธฐ์œ„ํ•œ(๋ Œ๋”๋งํ•˜๊ธฐ ์œ„ํ•œ) JS ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ui๋ฅผ ๊ทธ๋ฆฌ๊ธฐ์œ„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—๊ฒŒ side effect๋Š” ๋ฌด์—‡์ผ๊นŒ? ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์˜ค๋Š” ์ž‘์—…, ์ด๋ฒคํŠธ๋ฅผ ๋“ฑ๋กํ•˜๊ณ  ํ•ด์ œํ•˜๋Š” ์ž‘์—…, ํƒ€์ด๋จธ๋ฅผ ์„ค์ •ํ•˜๊ณ  ํ•ด์ œํ•˜๋Š” ์ž‘์—… ๋“ฑ์ด side effect์— ํ•ด๋‹นํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ์ž‘์—…๋“ค์€ ๋ Œ๋”๋ง๊ณผ๋Š” ๊ด€๋ จ์ด ์—†๋Š” ์ž‘์—…์ด๋‹ค. ๊ทธ๋ž˜์„œ ๋ฆฌ์•กํŠธ์—์„œ๋Š” ์ด๋Ÿฌํ•œ ์ž‘์—…๋“ค์„ useEffect๋ฅผ ํ†ตํ•ด ์ฒ˜๋ฆฌํ•œ๋‹ค. ํ—Œ๋ฐ ๊ทธ๋Ÿฐ ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. fetch ๋ผ๋Š” ๋น„๋™๊ธฐ api๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์–ด๋–ค state๋ฅผ setStateํ•˜๋Š” ์ž‘์—…์„ useEffect ๋‚ด๋ถ€์—์„œ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒฝ์šฐ์ด๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์ด๊ฑด ์ •๋ง ๊ดœ์ฐฎ์€ ๊ฒƒ์ผ๊นŒ?
ํ•˜๋‚˜์˜ ์ปดํฌ๋„ŒํŠธ ์ƒ์• ์ฃผ๊ธฐ์—์„œ ํ•ด๋‹น ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์ฒ˜์Œ input์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์€ 3๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.

  • ๋ถ€๋ชจ์—๊ฒŒ ๋ฐ›์€ props
  • ์ž์ฒด์ ์œผ๋กœ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” state
  • provider๋ฅผ ํ†ตํ•ด ๋ฐ›์€ context

์ดˆ๊ธฐ์— ๋ฐ›์€ ์œ„์˜ 3๊ฐ€์ง€๋ฅผ ํ†ตํ•ด ์ด๋ค„์ง„ ์ฒซ ๋ Œ๋”๋ง ์ดํ›„์— ์ผ์–ด๋‚˜๋Š” ๋ Œ๋”๋ง ๋˜ํ•œ side effect๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ์—, ๋ Œ๋”๋ง์˜ ํšจ์œจ์„ ์ƒ๊ฐํ•˜์ง€ ์•Š๊ณ  useEffect๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ Œ๋”๋ง์ด ๋ถˆํ•„์š”ํ•˜๊ฒŒ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฐ ์ ์ด useEffect๊ฐ€ ์ตœ๋Œ€ํ•œ ์ง€์–‘ํ•ด์•ผํ•˜๋Š” ๋ผ๋ฉด ์Šคํ”„๊ฐ™๋‹ค๋Š” ์ด์œ ์ด๋‹ค. ์ตœ๋Œ€ํ•œ ๋‚ด๊ฐ€ ๊ฐ–๊ณ  ์žˆ๋Š” props, state, context๋ฅผ handlingํ•  ์ˆ˜ ์žˆ๋Š” handle ํ•จ์ˆ˜๋ฅผ ์ž˜ ๋งŒ๋“ค๊ณ  ๋„์ €ํžˆ handle ํ•จ์ˆ˜๋กœ๋Š” ๋˜์ง€ ์•Š์„ ๋•Œ, ๊ทธ ๋•Œ useEffect๋ฅผ ์‚ฌ์šฉํ•˜์ž.

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

๋‹ค์‹œ ์„ฑ์žฅ์ผ์ง€ ์—ด์‹ฌํžˆ ์ž‘์„ฑํ•  ๊ฒƒ์ด๋‹ค!!! ๋งค์ผ ๋งค์ผ ์ž‘์€ ๋‹จ์œ„์˜ ๊ณ„ํš์„ ์„ธ์šฐ๊ณ  ๋ถ„ํ•  ์ •๋ณต์œผ๋กœ ์ด๋ค„๋‚˜๊ฐˆ ๊ฒƒ์ด๋‹ค! ํ•  ์ˆ˜ ์žˆ๋‹ค, ์•„์ž์•„์ž!!!

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

  • ์Šค์Šค๋กœ๋ฅผ ๋ฆฌํ”„๋ ˆ์‰ฌํ•œ ์ 

์˜ค๋Š˜์˜ ์•„์‰ฌ์šด ์ 

  • ์—†๋‹ค.

์ฐธ๊ณ