Study/React

    [React] React์™€ Vanilla JS ๊ฐœ๋ฐœ์˜ ์ฐจ์ด์ 

    React์™€ Vanilla JS ๊ฐœ๋ฐœ์˜ ์ฐจ์ด์  Vanilla JS React ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค HTML ์š”์†Œ๋กœ ๊ตฌํ˜„ ์ปดํฌ๋„ŒํŠธ ๋‹จ์œ„๋กœ ์š”์†Œ ๊ตฌํ˜„ ๊ธฐ๋Šฅ ๋ฐ ์š”์†Œ ์œ ์ง€ ๊ด€๋ฆฌ HTML์™€ JS ํŒŒ์ผ ๋‘ ๊ฐœ๋กœ ์œ ์ง€ ๊ด€๋ฆฌ ํŒŒ์ผ ํ•˜๋‚˜๋กœ ์œ ์ง€ ๊ด€๋ฆฌ ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅ ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ ์ „์ฒด๊ฐ€ ๋ฆฌ๋ Œ๋”๋ง ๋ณ€๊ฒฝ๋œ ๋ถ€๋ถ„๋งŒ ๋ฆฌ๋ Œ๋”๋ง React์˜ ์žฅ์  ๊ณต์‹ ๋ฌธ์„œ ๊ฐ€์ด๋“œ์™€ ์ปค๋ฎค๋‹ˆํ‹ฐ๋‚˜ ์ž๋ฃŒ๊ฐ€ ๋งŽ์•„ ์‰ฝ๊ฒŒ ์ ‘ํ•˜๊ณ  ๋ฐฐ์šธ ์ˆ˜ ์žˆ์Œ ์ปดํฌ๋„ŒํŠธ ๋‹จ์œ„๋กœ ๋‚˜๋ˆ„์–ด ๊ด€๋ฆฌํ•˜์—ฌ ์—ญํ• ๊ณผ ๊ธฐ๋Šฅ์— ๋”ฐ๋ผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด ์šฉ์ดํ•จ UI ์ˆ˜์ •๊ณผ ์žฌ์‚ฌ์šฉ์„ฑ์ด ์ข‹์œผ๋ฉฐ, ์ฝ”๋“œ ๊ฐ€๋…์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Œ ๋‹ค๋ฅธ ํ”„๋ ˆ์ž„์›Œํฌ๋‚˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ๋ณ‘ํ–‰ํ•˜์—ฌ ์‚ฌ์šฉ ๊ฐ€๋Šฅ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณ€๊ฒฝ๋˜๋ฉด DOM ์ „์ฒด๋ฅผ ๋ฆฌ๋žœ๋”๋งํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ๋ณ€๊ฒฝ๋œ ๋ถ€๋ถ„์„ ์ฒดํฌํ•˜์—ฌ ๋ณ€๊ฒฝ๋œ ๋ถ€๋ถ„๋งŒ ๋ Œ๋”๋ง๋˜์–ด ์†๋„๊ฐ€ ๋น ๋ฆ„

    [React] ๊ฐ€์ƒ ๋”(Virtual DOM)

    DOM ์ด๋ž€? DOM์€ Documnet Object Model์˜ ์ค„์ž„๋ง๋กœ, ์›น ํŽ˜์ด์ง€๋ฅผ ์ด๋ฃจ๋Š” ํƒœ๊ทธ๋“ค์„ JS๊ฐ€ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ํŠธ๋ฆฌ ๊ตฌ์กฐ๋กœ ๋งŒ๋“  ๊ฐ์ฒด ๋ชจ๋ธ์„ ๋งํ•œ๋‹ค. ๊ทธ๋Œ€๋กœ ํ’€์–ด์„œ ํ•ด์„ํ•˜๋ฉด ๋ฌธ์„œ ๊ฐ์ฒด ๋ชจ๋ธ์ธ๋ฐ, html, head, body์™€ ๊ฐ™์€ ํƒœ๊ทธ๋“ค์„ JS๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ๋ณด๊ด€ํ•˜๊ณ  ์ด์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ์ฒด์ธ ๊ฒƒ์ด๋‹ค. ๊ฐ„๋‹จํžˆ ๋งํ•ด์„œ DOM์€ HTML์™€ ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด๋ฅผ ์„œ๋กœ ์ด์–ด์ฃผ๋Š” ์—ญํ• ์„ ํ•˜๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค. JS๋Š” HTML ํƒœ๊ทธ๋“ค์—๊ฒŒ Document๋ผ๋Š” ์ „์—ญ ๊ฐ์ฒด๋ฅผ ํ†ตํ•˜์—ฌ ์ ‘๊ทผํ•ด ์กฐ์ข…ํ•œ๋‹ค. window๋ผ๋Š” ๊ฐ์ฒด๋Š” Document๋ผ๋Š” ์ „์—ญ ๊ฐ์ฒด ์ƒ์œ„์— ์œ„์น˜ํ•ด ์žˆ๋‹ค. ๋ณดํ†ต ๋ณธ์ธ์€ HTML ์ด๋‚˜ React ์ž‘์—…์„ ์‹œ์ž‘ํ•˜๊ธฐ ์ „, ํŽ˜์ด์ง€์˜ DOM ํŠธ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ๊ทธ๋ ค ๋ณธ ํ›„์— ์‹œ์ž‘ํ•œ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ํ•˜๋ฉด ์ข€ ๋” ์ฒด..