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)์ด ๋ญ๊ฐ์? (์งฑ ์ฌ์)
'FA > React' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
20221105 React Hooks - Custom Hooks ์ปค์คํ ํ (0) | 2022.11.05 |
---|---|
20221104 React Hooks - useReducer (0) | 2022.11.04 |
20221102 React Hooks - useMemo, useCallback (0) | 2022.11.02 |
20221024 input type="file" ์ฉ๋ ์ ํํ๊ธฐ (0) | 2022.10.24 |
20221008 video ์ฌ์ฉํ๊ธฐ (0) | 2022.10.08 |