๐ย Reference
๐ย Chapter
DFS (Depth First Search)
Stack Reconciler
- Stack Reconciler
- Reconciler - ์กฐ์ ์
- ์คํ ๋ฆฌ์ปจ์ค๋ฌ
- Stack Reconciler๋ React์ ์ด๊ธฐ ๋ฒ์ ๋ถํฐ React 15๊น์ง ์ฌ์ฉ๋์๋ ํต์ฌ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก, UI์ ๊ฐ์ DOM(Virtual DOM)๊ณผ ์ค์ DOM์ ๋๊ธฐํํ๋ ์ญํ ์ ๋ด๋นํ๋ค.
- ํ์ฌ React 16๋ถํฐ ์ฌ์ฉ๋๋ Fiber Reconciler์ ์ ์ ์ด๋ผ๊ณ ๋ณด๋ฉด ๋๋ค.
- ์ด๋ฆ์์ ์ ์ ์๋ฏ์ด ์ด ์๊ณ ๋ฆฌ์ฆ์ JavaScript์ Call Stack ๊ตฌ์กฐ๋ฅผ ํ์ฉํ์ฌ ๋๊ธฐ์ ์ผ๋ก ์์
์ ์ฒ๋ฆฌํ๋ ๊ฒ์ด ํน์ง์ด๋ค.
์๋ฆฌ
- Stack Reconciler์ ์ด๋ฆ์ 'Stack'์ด ๋ถ์ ์ด์ ๋ UI ํธ๋ฆฌ๋ฅผ ์
๋ฐ์ดํธํ ๋ ๋๊ธฐ์ (Synchronous)์ด๊ณ ์ฌ๊ท์ ์ธ ๋ฐฉ์์ผ๋ก ๋์ํ๊ธฐ ๋๋ฌธ์ด๋ค.
- ์ฌ๊ท์ ๋น๊ต: ์
๋ฐ์ดํธ๊ฐ ๋ฐ์ํ๋ฉด React๋ ํธ๋ฆฌ์ ๋ฃจํธ๋ถํฐ ์์ํ์ฌ ์๋๋ก ๋ด๋ ค๊ฐ๋ฉฐ ๋ณ๊ฒฝ ์ฌํญ์ ์ฐพ๋๋ค.
- ์ค๋จ ๋ถ๊ฐ: ํ ๋ฒ ๋น๊ต ํ๋ก์ธ์ค๊ฐ ์์๋๋ฉด, ์ ์ฒด ํธ๋ฆฌ์ ์ํ๊ฐ ๋๋ ๋๊น์ง ๋ฉ์ถ ์ ์๋ค.
- ์ฝ ์คํ ํ์ฉ: JavaScript์ ํ์ค Call Stack์ ์ฌ์ฉํ์ฌ ์์
์ ์ฒ๋ฆฌํ๋ค.
ํต์ฌ ๋์ ์๋ฆฌ: ์ฌ๊ท์ ํ์
- Stack Reconciler์ ๊ฐ์ฅ ํฐ ํน์ง์ ๋๊ธฐ์ (Synchronous)์ด๊ณ ์ฌ๊ท์ ์ธ ๋์ ๋ฐฉ์์ด๋ค.
- Tree Traversal: ์ํ๊ฐ ๋ณ๊ฒฝ๋๋ฉด React๋ ๊ฐ์ DOM ํธ๋ฆฌ(Virtual DOM)๋ฅผ ์ต์๋จ๋ถํฐ ์๋๋ก ์ฌ๊ท์ ์ผ๋ก ํ์ํ๋ฉฐ ๋ณ๊ฒฝ ์ฌํญ์ ์ฐพ๋๋ค.
- Deep-first Search: ํ ๋ถ๊ธฐ๋ฅผ ์ก์ผ๋ฉด ํด๋น ๋ถ๊ธฐ์ ๋๊น์ง(Leaf node) ๋ด๋ ค๊ฐ์ ์ฒ๋ฆฌ๋ฅผ ์๋ฃํด์ผ๋ง ๋ค์ ๋ถ๊ธฐ๋ก ๋์ด๊ฐ ์ ์๋ค.
- Call Stack ์ ์ : ์ด ๋ชจ๋ ๊ณผ์ ์ด JavaScript์ ์คํ ์คํ(Call Stack) ์์์ ํ ๋ฒ์ ์ด๋ฃจ์ด์ง๋ค.
ํ๊ณ์ : "ํ๋ฉด ๋ฉ์ถค" ํ์