๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ“‚ ๊ธฐ์ˆ  ๋ฉด์ ‘/Library4

Virtual DOM์ด๋ž€? ๊ทธ๋ฆฌ๊ณ  ์‚ฌ์šฉ ์‹œ ์žฅ์ ์€? ๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป Virtual DOM์ด ๋ฌด์—‡์ด๊ณ , Virtual DOM์ด ์–ด๋–ค ๋ฉด์—์„œ ์ข‹์€๊ฐ€์š”? ๐Ÿ’๐Ÿป‍โ™€๏ธ ์š”์•ฝํ•˜์ž๋ฉด , React์˜ ๊ฐ€์ƒ DOM์€ ์‹ค์ œ DOM๊ณผ ์œ ์‚ฌํ•œ ๋‚ด์šฉ์„ ๋‹ด๊ณ  ์žˆ๋Š” ๋ณต์‚ฌ๋ณธ์ด๋ฉฐ, ์ด๋ฅผ ํ™œ์šฉํ•˜๋ฉด ๋ Œ๋”๋ง์„ ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์ƒ DOM์„ ๋จผ์ € ์„ค๋ช…ํ•˜์ž๋ฉด, React๋Š” ๋ณ€๊ฒฝ ์ด์ „๊ณผ ๋ณ€๊ฒฝ ์ดํ›„์˜ ๋‘ ๊ฐœ์˜ ๊ฐ€์ƒ DOM์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ๊ฐ€์ƒ DOM์€ ๋ณ€๊ฒฝ ์ด์ „์˜ ๋‚ด์šฉ์„, ๋‘ ๋ฒˆ์งธ ๊ฐ€์ƒ DOM์€ ๋ณ€๊ฒฝ ์ดํ›„์— ๋ณด์—ฌ์งˆ ๋‚ด์šฉ์„ ๋‹ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณ€๊ฒฝ๋œ ๋‚ด์šฉ์ด ํ™”๋ฉด์— ์ƒˆ๋กญ๊ฒŒ ๊ทธ๋ ค์ง€๊ธฐ ์ „, ์ฆ‰ ์‹ค์ œ DOM์ด ๋ณ€๊ฒฝ๋˜๊ธฐ ์ด์ „์— React๋Š” ๋‘ ๊ฐœ์˜ ๊ฐ€์ƒ DOM์„ ๋น„๊ตํ•˜์—ฌ ์–ด๋–ค ๋ถ€๋ถ„์ด ๋ณ€๊ฒฝ๋˜์—ˆ๋Š”์ง€ ํšจ์œจ์ ์œผ๋กœ ์ฐพ์•„๋‚ด๋Š” ์ž‘์—…(๋˜๋Š” Diffing)์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ, React๋Š” ๋ถ€๋ชจ ์š”์†Œ์˜ ํƒ€์ž…์ด ๋ณ€๊ฒฝ๋˜๋ฉด .. 2023. 6. 8.
useEffect์˜ dependency array์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”. ๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป useEffect์˜ dependency array์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”. ๐Ÿ’๐Ÿป‍โ™€๏ธ ์š”์•ฝํ•˜์ž๋ฉด , useEffect๋ž€, ์ปดํฌ๋„ŒํŠธ ๋‚ด์—์„œ ์‚ฌ์ด๋“œ ์ดํŽ™ํŠธ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ํ›…์ž…๋‹ˆ๋‹ค. useEffect๋Š” ์ฒซ ๋ฒˆ์งธ ์ธ์ž๋กœ ์ฝœ๋ฐฑํ•จ์ˆ˜๋ฅผ ๋ฐ›๊ณ , ๋‘ ๋ฒˆ์งธ ์ธ์ž๋กœ ๋ฐฐ์—ด์„ ๋ฐ›๋Š”๋ฐ, ์ด ๋ฐฐ์—ด์„ dependency array ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. dependency array๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”? ์ข…์†์„ฑ ๋ฐฐ์—ด์ด๋ผ ๋ถ€๋ฅด๋Š” ์ด์œ ๋Š” useEffect์˜ ์‹คํ–‰์ด ํ™”๋ฉด์— ์ฒ˜์Œ ๋ Œ๋”๋ง ๋  ๋•Œ ๊ทธ๋ฆฌ๊ณ  ์ข…์†์„ฑ ๋ฐฐ์—ด์˜ value ๊ฐ’์ด ๋ฐ”๋€” ๋•Œ๋งˆ๋‹ค ์‹คํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋งŒ์•ฝ ๋นˆ ๋ฐฐ์—ด์ด ์ „๋‹ฌ๋œ๋‹ค๋ฉด ์ฒซ ๋ Œ๋”๋ง๋  ๋•Œ๋งŒ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. useEffect์— dependency array๋ฅผ ์ฃผ์ง€ ์•Š์œผ๋ฉด, ์ƒํƒœ๊ฐ€ ๋ณ€๊ฒฝ๋  ๋•Œ๋งˆ๋‹ค ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ฆฌ๋ Œ๋”๋ง์ด ๋ฉ๋‹ˆ๋‹ค. .. 2023. 4. 10.
React ์ปดํฌ๋„ŒํŠธ์˜ key ์†์„ฑ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”. ๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป React ์ปดํฌ๋„ŒํŠธ์˜ key ์†์„ฑ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”. React์—์„œ ๋ฆฌ์ŠคํŠธ ํ˜•ํƒœ๋กœ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ Œ๋”๋ง ํ•  ๋•Œ, key ๊ฐ’์„ ๋„ฃ์–ด๋‹ฌ๋ผ๋Š” console ์—๋Ÿฌ๊ฐ€ ์ž์ฃผ ๋œจ๋Š”๋ฐ์š”. ์ด๋•Œ ์ด key ๊ฐ’์ด ์–ด๋– ํ•œ ์—ญํ• ์„ ํ• ๊นŒ์š”? ๐Ÿ’๐Ÿป‍โ™€๏ธ ์š”์•ฝํ•˜์ž๋ฉด , key๋Š” React๊ฐ€ ์–ด๋–ค ํ•ญ๋ชฉ์„ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜ ์ถ”๊ฐ€ํ• ์ง€ ๋˜๋Š” ์‚ญ์ œํ• ์ง€ ๊ตฌ๋ณ„ํ•˜๋„๋ก ๋•๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. key๋Š” ์—˜๋ฆฌ๋จผํŠธ์— ์•ˆ์ •์ ์ธ ๊ณ ์œ ์„ฑ์„ ๋ถ€์—ฌํ•˜๊ธฐ ์œ„ํ•ด ๋ฐฐ์—ด ๋‚ด๋ถ€์˜ ์—˜๋ฆฌ๋จผํŠธ์— ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. key ์†์„ฑ์€ ๊ฐ™์€ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ๋ Œ๋”๋งํ•  ๋•Œ, ๋‹ค๋ฅธ ์ปดํฌ๋„ŒํŠธ์ž„์„ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ์†์„ฑ์ธ๋ฐ์š”. ์˜ˆ๋ฅผ ๋“ค์–ด, 10๊ฐœ์˜ ํŠธ์œ— ์ค‘ ํ•˜๋‚˜์˜ ํŠธ์œ—๋งŒ ๋ณ€๊ฒฝ๋˜์—ˆ์„ ๋•Œ ํ•ด๋‹น ํŠธ์œ—๋งŒ ์žฌ๋ Œ๋”๋งํ•˜๊ณ , ๋‹ค๋ฅธ 9๊ฐœ์˜ ํŠธ์œ—์€ ๊ทธ๋Œ€๋กœ ๋‘˜ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ key ์†์„ฑ์„ ํ™œ์šฉํ•˜.. 2023. 4. 10.
React์˜ props์™€ state์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”. ๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป React์—์„œ props์™€ state์˜ ์ฐจ์ด์ ์€ ๋ฌด์—‡์ธ๊ฐ€์š”? ๐Ÿ’๐Ÿป‍โ™€๏ธ ์š”์•ฝํ•˜์ž๋ฉด , props์™€ state๋Š” ๋ชจ๋‘ JavaScript์˜ ๊ฐ์ฒด์ด๋ฉฐ ๋‘ ๊ฐ์ฒด ๋ชจ๋‘ ๋ Œ๋”๋ง ํ›„ ๊ฒฐ๊ณผ๋ฌผ์— ์˜ํ–ฅ์„ ์ฃผ๋Š” ์ •๋ณด๋“ค์„ ๊ฐ€์ง€๊ณ  ์žˆ์ง€๋งŒ, ํ•œ ๊ฐ€์ง€ ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. props๋Š” ์™ธ๋ถ€๋กœ๋ถ€ํ„ฐ ์ „๋‹ฌ๋ฐ›์€ ๊ฐ’์œผ๋กœ ๋ณ€ํ•  ์ˆ˜ ์—†๋Š” ๊ฐ’์ธ ๋ฐ˜๋ฉด, state๋Š” ํ•จ์ˆ˜ ์ปดํฌ๋„ŒํŠธ ๋‚ด๋ถ€์—์„œ ๋ณ€ํ™”ํ•˜๋Š” ๊ฐ’์ž…๋‹ˆ๋‹ค. ๊ฐ ํŠน์ง•์œผ๋กœ๋Š”, (1) props - React์—์„œ ์ปดํฌ๋„ŒํŠธ๋Š” ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ๋กœ๋ถ€ํ„ฐ props๋ฅผ ๋ฐ›๊ณ  ์ด props๋Š” ์ƒ์†๋ฐ›๋Š” ์ปดํฌ๋„ŒํŠธ ๋‚ด์—์„œ ์ˆ˜์ •์ด ๋ถˆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. - ๋ฐ์ดํ„ฐ์˜ ๋ฟŒ๋ฆฌ๊ฐ€ ์ž๊ธฐ ์ž์‹ ์ด ์•„๋‹Œ, ์ฆ‰ ์™ธ๋ถ€๋กœ๋ถ€ํ„ฐ ์ „๋‹ฌ๋ฐ›๊ธฐ์— ํ•จ๋ถ€๋กœ ๋ณ€ํ•˜์ง€ ์•Š๋Š” ๊ฐ’์ธ ์ฝ๊ธฐ ์ „์šฉ ๊ฐ’์ž…๋‹ˆ๋‹ค. (2) state - ์ž๊ธฐ ์ž์‹ ์˜ ์ปดํฌ๋„ŒํŠธ์—์„œ ๋งŒ๋“ค์–ด ๋‚ธ ๋ฐ์ดํ„ฐ์ด.. 2023. 4. 4.