[260315] TIL
Today I Learned (2026-03-15)
๋ณต์ต: ๋ฉ๋ชจ์ด์ ์ด์ ์ ๋๋ก ์ฐ๊ธฐ
์ฐธ๊ณ ๋งํฌ
Render/Commit Phase์ ๋ธ๋ผ์ฐ์ ๋ ๋๋ง
- ๋ธ๋ผ์ฐ์ ํ์ดํ๋ผ์ธ: DOM/CSSOM -> Render Tree -> Layout -> Paint -> Composite
- React Render Phase: ๋ฌด์์ ๋ฐ๊ฟ์ง ๊ณ์ฐ(๊ฐ์ DOM ๋น๊ต)
- React Commit Phase: ์ค์ DOM ๋ฐ์(
appendChild,setAttribute๋ฑ) useLayoutEffect๋ ์ปค๋ฐ ์งํ(ํ์ธํธ ์ ),useEffect๋ ํ์ธํธ ํ ์คํ
๋ฉ๋ชจ์ด์ ์ด์ ํ ๋์ ๊ด์
| API | ์๋ ์์ | ํ๋ ์ผ | ๋ชฉ์ |
|---|---|---|---|
React.memo |
Render Phase ์ด์ | props๊ฐ ๊ฐ์ผ๋ฉด ์ปดํฌ๋ํธ ๋ ๋๋ง ์์ฒด๋ฅผ ๊ฑด๋๋ | ๋ถํ์ํ ๋ฆฌ๋ ๋๋ง/์ปค๋ฐ ๋ฐฉ์ง |
useMemo |
Render Phase ๋ด๋ถ | ์์กด์ฑ์ด ๊ฐ์ผ๋ฉด ๊ณ์ฐ๊ฐ ์ฌ์ฌ์ฉ | ๋ฌด๊ฑฐ์ด ๊ณ์ฐ ๋น์ฉ ์ ๊ฐ |
useCallback |
Render Phase ๋ด๋ถ | ์์กด์ฑ์ด ๊ฐ์ผ๋ฉด ํจ์ ์ฐธ์กฐ ์ฌ์ฌ์ฉ | ์์์ ์ ๋ฌํ๋ ํจ์ props์ ์ฐธ์กฐ ๋์ผ์ฑ ์ ์ง |
์ ๋ฆฌ
- ๋ถ๋ชจ ๋ฆฌ๋ ๋๋ง ์ ํจ์ props๊ฐ ๋งค๋ฒ ์๋ก ์์ฑ๋๋ฉด ์์๋ ์ฝ๊ฒ ๋ฆฌ๋ ๋๋ง๋๋ค.
useCallback์ ํจ์ ์ฐธ์กฐ ์์ ํ์ ํจ๊ณผ์ ์ด๊ณ ,React.memo์ ํจ๊ป ์จ์ผ ์ฒด๊ฐ์ด ํฌ๋ค.- ๊ฐ์ฒด/๋ฐฐ์ด props๋
useMemo๋ก ์ฐธ์กฐ๋ฅผ ์์ ํํด์ผ ์์ ๋น๊ต ์ต์ ํ๊ฐ ์ ๋์ํ๋ค. React.memo,useMemo,useCallback์ ๋ฌด์กฐ๊ฑด ์ ์ฉ๋ณด๋ค ๋ณ๋ชฉ์ด ์๋ ์ง์ ์ ๋ง์ถฐ ์ ํ์ ์ผ๋ก ์ฐ๋ ๊ฒ ์ข๋ค.
Leave a comment