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

FA/React

20221103 React - ๊ฐ€์ƒ๋” (Virtual DOM)

DOM(Document Object Model)

์›นํŽ˜์ด์ง€์— ๋“ค์–ด๊ฐ€ ์žˆ๋Š” ๊ตฌ์กฐ๋“ค์„ ํŠธ๋ฆฌํ˜•ํƒœ๋กœ ๊ตฌ์„ฑํ•œ ๊ฒƒ

Virtual DOM (VDOM) ๊ฐ€์ƒ๋”

UI์˜ ์ด์ƒ์ ์ธ ๋˜๋Š” "๊ฐ€์ƒ"์ ์ธ ํ‘œํ˜„์„ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•˜๊ณ  ReactDOM๊ณผ ๊ฐ™์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์˜ํ•ด “์‹ค์ œ” DOM๊ณผ ๋™๊ธฐํ™”ํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฐœ๋…. ์ด ๊ณผ์ •์„ ์žฌ์กฐ์ •(Reconciliation)์ด๋ผ๊ณ  ํ•จ.

 

- ๋ฆฌ์•กํŠธ๋Š” ๊ฐ€์ƒ๋”์„ ์‚ฌ์šฉํ•ด์„œ ์‹ค์ œ๋”์„ ์กฐ์ž‘ํ•˜๋Š” ๊ฒƒ์„ ๋น ๋ฅด๊ฒŒ ๋งŒ๋“ค์–ด ์คŒ

- ๊ฐ€์ƒ๋”์€ ์‹ค์ œ๋”๊ณผ ๊ฐ™์€ ๋‚ด์šฉ์„ ๋‹ด๊ณ  ์žˆ๋Š” ๋ณต์‚ฌ๋ณธ

   ๋ณต์‚ฌ๋ณธ: ์‹ค์ œ ๋”์ด ์•„๋‹Œ ์ž๋ฐ”์ŠคํŠธ๋ฆฝํŠธ ๊ฐ์ฒด ํ˜•ํƒœ๋กœ ๋ฉ”๋ชจ๋ฆฌ ์•ˆ์— ์ €์žฅ๋˜์–ด ์žˆ์Œ

   (์‹ค์ œ ๋”์ด๋ž‘ ๋˜‘๊ฐ™์€ ์—˜๋ฆฌ๋จผ์ธ  ์†์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Œ)

- ๋ธŒ๋ผ์šฐ์ € ๋ฌธ์„œ์— ์ง์ ‘์ ์œผ๋กœ ์ ‘๊ทผ ๋ถˆ๊ฐ€

 

๋ฆฌ์•กํŠธ๋Š” ๋‘๊ฐ€์ง€ ๊ฐ€์ƒ ๋”์„ ๊ฐ€์ง€๊ณ  ์žˆ์Œ

1. ๋ Œ๋”๋ง ์ด์ „ ํ™”๋ฉด ๊ตฌ์กฐ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฐ€์ƒ๋”

2. ๋ Œ๋”๋ง ์ดํ›„์— ๋ณด์ด๊ฒŒ ๋  ํ™”๋ฉด ๊ตฌ์กฐ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฐ€์ƒ๋”

1,2๋ฅผ ๋น„๊ตํ•ด์„œ ๋ฐ”๋€ ๋ถ€๋ถ„์„ ์ฐพ์•„๋ƒ„ (Diffing) ํšจ์œจ์ ์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•ด์„œ ์ผ์–ด๋‚˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ”๋€ ์—˜๋ฆฌ๋จผํŠธ๋“ค์„ ๋น ๋ฅด๊ฒŒ ์ฐพ์•„๋‚ผ ์ˆ˜ ์žˆ์Œ > ๋ฆฌ์•กํŠธ๋Š” ๋ฐ”๋€ ๋ถ€๋ถ„๋“ค๋งŒ ์‹ค์ œ ๋ธŒ๋ผ์šฐ์ € ํ™”๋ฉด์— ์ ์šฉํ•ด์คŒ(Reconciliation)

 

๋ฆฌ์•กํŠธ์˜ ์žฌ์กฐ์ •(Reconciliation) ๊ณผ์ •์ด ํšจ์œจ์ ์ธ ์ด์œ ๋Š” Batch Update ๋•Œ๋ฌธ

- Batch Update๋Š” ๋ณ€๊ฒฝ๋œ ๋ชจ๋“  ์—˜๋ฆฌ๋จผํŠธ๋“ค์„ ์ง‘๋‹จ์œผ๋กœ ์‹ค์ œ๋”์— ํ•œ๋ฒˆ์— ์ ์šฉ ์‹œ์ผœ ์คŒ

 

 

 

 

 

 

์ฐธ๊ณ ์ž๋ฃŒ ๋ฐ ์ถœ์ €

https://ko.reactjs.org/docs/faq-internals.html

 

Virtual DOM๊ณผ Internals – React

A JavaScript library for building user interfaces

ko.reactjs.org

https://ko.wikipedia.org/wiki/%EB%AC%B8%EC%84%9C_%EA%B0%9D%EC%B2%B4_%EB%AA%A8%EB%8D%B8

 

๋ฌธ์„œ ๊ฐ์ฒด ๋ชจ๋ธ - ์œ„ํ‚ค๋ฐฑ๊ณผ, ์šฐ๋ฆฌ ๋ชจ๋‘์˜ ๋ฐฑ๊ณผ์‚ฌ์ „

์œ„ํ‚ค๋ฐฑ๊ณผ, ์šฐ๋ฆฌ ๋ชจ๋‘์˜ ๋ฐฑ๊ณผ์‚ฌ์ „. ๋ฌธ์„œ ๊ฐ์ฒด ๋ชจ๋ธ(์˜์–ด: Document Object Model ๋„ํ๋จผํŠธ ์˜ค๋ธŒ์ ํŠธ ๋ชจ๋ธ[*], DOM)์€ XML, HTML ๋ฌธ์„œ์˜ ๊ฐ ํ•ญ๋ชฉ์„ ๊ณ„์ธต์œผ๋กœ ํ‘œํ˜„ํ•˜์—ฌ ์ƒ์„ฑ, ๋ณ€ํ˜•, ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•๋Š” ์ธํ„ฐ

ko.wikipedia.org

https://www.youtube.com/watch?v=gc-kXt0tjTM  ๋ณ„์ฝ”๋”ฉ - React์˜ ๊ฐ€์ƒ๋” (Virtual DOM)์ด ๋ญ”๊ฐ€์š”? (์งฑ ์‰ฌ์›€)