[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์€ ๋ฌด์กฐ๊ฑด ์ ์šฉ๋ณด๋‹ค ๋ณ‘๋ชฉ์ด ์žˆ๋Š” ์ง€์ ์— ๋งž์ถฐ ์„ ํƒ์ ์œผ๋กœ ์“ฐ๋Š” ๊ฒŒ ์ข‹๋‹ค.

Categories:

Updated:

Leave a comment