- ๋ฉํ(๊ตฌ ํ์ด์ค๋ถ)์ด ๊ฐ๋ฐํ ํ๋ก ํธ์๋๋ฅผ ์ํ ์คํ ์์ค ์๋ฐ์คํฌ๋ฆฝํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- ๋๊ท๋ชจ ์น ์๋น์ค UI๋ฅผ ๋ ํธ๋ฆฌํ๊ฒ ๊ฐ๋ฐํ๊ธฐ ์ํด ๋ง๋ค์ด์ง ๊ธฐ์
- React.js๋ก ๋ง๋ค์ด์ง ์๋น์ค๋ค : ๋ทํ๋ฆญ์ค, ํ์ด์ค๋ถ, ์ธ์คํ๊ทธ๋จ, ๋ ธ์ ๋ฑ๋ฑ
์ปดํฌ๋ํธ ๊ธฐ๋ฐ์ผ๋ก UI๋ฅผ ํํํ๋ค.
- ์ปดํฌ๋ํธ(Component) : ํ๋ฉด, UI๋ฅผ ๊ตฌ์ฑํ๋ ์์
- Header โ header.js
Main โ Main.js
Footer โ Footer.js- ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ์ component ๋จ์๋ก ๋ชจ๋ํํด์ ๋ณด๊ด โก๏ธ ์ค๋ณต ์ฝ๋๊ฐ ์๋ค.
ํ๋ฉด ์
๋ฐ์ดํธ ๊ตฌํ์ด ์ฝ๋ค.
โ
์
๋ฐ์ดํธ : ์ฌ์ฉ์์ ํ๋(ํด๋ฆญ, ๋๋๊ทธ)์ ๋ฐ๋ผ ์นํ์ด์ง๊ฐ ์ค์ค๋ก ๋ชจ์ต์ ๋ฐ๊ฟ ์ํธ์์ฉํ๋ ๊ฒ
- React๋ ์ ์ธํ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ๋์ โก๏ธ ๋ชฉ์ ๋ง ๊น๋ํ๊ฒ ๋ช ์, ์ฝ๋๊ฐ ๊ฐ๊ฒฐํจ
- ์ปดํฌ๋ํธ๊ฐ ๊ฐ์ง๊ณ ์๋ ๋ณ์์ ๊ฐ์ ๋ฐ๊พธ๋ฉด ๊ฐ์ ๋ฐ๋ผ ๋ค๋ฅธ UI๋ฅผ ๋๋๋งํ ์ ์๋ค.
(์ฆ, ๊ฐ์ ๋ฐ๊พธ๋ ๊ฒ๋ง์ผ๋ก๋ ํ๋ฉด ์ ๋ฐ์ดํธ๊ฐ ๊ฐ๋ฅ)
ํ๋ฉด ์ ๋ฐ์ดํธ๊ฐ ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌ๋๋ค.
๋ธ๋ผ์ฐ์ ์ ๋ ๋๋ง ๊ณผ์ (Critical Rendering Path)

- Render Tree : ์น ํ์ด์ง์ ์ค๊ณ๋ ์ญํ โ ๋ชจ๋ ์ ๋ณด๊ฐ ํฌํจ๋์ด์๋ค.
- Layout : ์์์ ๋ฐฐ์น๋ฅผ ์ก๋ ์์
- Painting : ์ค์ ๋ก ํ๋ฉด์ ๊ทธ๋ ค๋ด๋ ๊ณผ์
๋ธ๋ผ์ฐ์ ๋ ๋๋ง ๊ณผ์ ์์ ์ ๋ฐ์ดํธ ํ๋ ๊ณผ์
JavaScript โก๏ธ DOM โก๏ธ Render Tree โก๏ธ Layout(Reflow) โก๏ธ Painting(Repaint)
- ๋ฌธ์ ์
์์ ํ๋ ํ์๊ฐ ๋ง์ ๊ฒฝ์ฐ DOM๋ ์์ ํ ํ์๋งํผ ์ ๋ฐ์ดํธํ๋ฏ๋ก ์ฑ๋ฅ์ด ์ ํ๋๋ค.
React๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ
: ๋์์ ๋ฐ์ํ ์
๋ฐ์ดํธ๋ฅผ ๋ชจ์์ DOM ํ์๋ฅผ ์ด๊ธฐํํ๋ ์์
์ React์์ ์๋์ผ๋ก ํด์ค๋ค.
Virtual DOM
โก๏ธ ์ค์ ๋ธ๋ผ์ฐ์ ๊ฐ ๋ ๋๋ง ํ๋ DOM์ ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด๋ก ๋ณต์ฌํด๋์ ๊ฒ
โก๏ธ React๋ ์ ๋ฐ์ดํธ๊ฐ ๋ฐ์ํ๋ฉด ์ค์ DOM์ ์์ ํ๊ธฐ ์ ์ ์ด ๊ฐ์์ ๋ณต์ ํ DOM์ ๋จผ์ ๋ฐ์ํด๋ณธ๋ค. โ ๋ชจ์ธ ์ ๋ฐ์ดํธ๋ฅผ ํ๋ฒ์ ๋ฐ์ํ๋ค (DOM 1ํ ์์ )