ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

Language/React

[โš›๏ธ] memoization

์ฑ„._. 2025. 1. 30. 21:23

memoization

 

๐Ÿ“์‚ฌ์šฉ ์ด์œ 

  • ํ•˜์œ„์˜ ์ž์‹ ์ปดํฌ๋„ŒํŠธ๋Š” ๋ถ€๋ชจ์˜ ๋ฆฌ๋ Œ๋”๋ง์— ๋”ฐ๋ผ ์–ด์ฉ” ์ˆ˜ ์—†์ด ๋ Œ๋”๋ง ๋œ๋‹ค.
  • ๋ถˆํ•„์š”ํ•œ ๋ Œ๋”๋ง์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ์ตœ์ ํ™”
  • ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋งŒ ์‚ฌ์šฉ
    +)
    ๋ชจ๋“  ํ•จ์ˆ˜๋ฅผ memo ์ฒ˜๋ฆฌํ•œ๋‹ค๊ณ  ํ•ด์„œ ๋นจ๋ผ์ง€๋Š” ๊ฒƒ์€ ์•„๋‹˜. ๊ฒฐ๊ตญ ์บ์‹ฑ ์ฒ˜๋ฆฌํ•œ ๊ฐ’์€ ๋”ฐ๋กœ ์ €์žฅํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ.

 

Memo (React.memo)

 

๐Ÿ“ํŠน์ง•

  • ์ปดํฌ๋„ŒํŠธ๋ฅผ ์บ์‹ฑ (hook X)
  • ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ๋ฅผ ์‚ฌ์šฉ ์‹œ, memo๊ฐ€ ๋ฌดํšจ๋จ(์ขŒ์ธก์— ํ• ๋‹นํ•˜๋“ฏ ํ•จ์ˆ˜๋„ ๋‹ค์‹œ ์ƒ์„ฑ๋จ = ์ฃผ์†Œ๊ฐ€ ๋ฐ”๋€œ)

 

๐Ÿ“์ ์šฉ ๋ฐฉ๋ฒ•

  • ๋ Œ๋”๋ง์„ ๋ง‰์œผ๋ ค๋Š” ์ปดํฌ๋„ŒํŠธ์—์„œ export default React.memo(์ปดํฌ๋„ŒํŠธ๋ช…)

 

 

useCallback

 

๐Ÿ“ํŠน์ง•

  • ํ•จ์ˆ˜๋ฅผ ์บ์‹ฑ(hook O)
  • ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ(ํ•จ์ˆ˜ ์ž์ฒด)๋ฅผ memo
  • ํ•จ์ˆ˜๋ฅผ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ์ €์žฅํ•ด๋‘๊ณ (์ฃผ์†Œ๊ฐ€ ๋ฐ”๋€Œ๋Š” ๊ฒƒ์„ ๋ง‰์Œ) ํŠน์ • ์กฐ๊ฑด์ด ์•„๋‹Œ ๊ฒฝ์šฐ์—๋Š” ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋„๋ก ํ•ด์•ผ ํ•จ
  • ํ•จ์ˆ˜๊ฐ€ ๋ณ€๊ฒฝ๋จ์— ๋”ฐ๋ผ ๋‹ค์‹œ memoํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์˜์กด์„ฑ ๋ฐฐ์—ด ๋‚ด๋ถ€์— ๋ณ€๊ฒฝ ์‹œ์ ์„ ์ž…๋ ฅํ•ด์ฃผ๊ธฐ

 

๐Ÿ“์ ์šฉ ๋ฐฉ๋ฒ•

  •  const ํ•จ์ˆ˜๋ช… = useCallback(ํ•จ์ˆ˜๋กœ์ง, [ ])
    => ์˜์กด์„ฑ ๋ฐฐ์—ด์—๋Š” ๋ณ€๊ฒฝ๋  ํŠน์ • ์กฐ๊ฑด์„ ๋ช…์‹œ

 

 

useMemo

 

๐Ÿ“ํŠน์ง•

  • ๊ฐ’์„ ์บ์‹ฑ
  • ๊ฐ’์ด ๊ต‰์žฅํžˆ ๋ฌด๊ฑฐ์šธ ๋•Œ ๋ Œ๋”๋ง์ด ์˜ค๋ž˜ ๊ฑธ๋ฆผ
  • ์ตœ์ดˆ ํ•œ ๋ฒˆ์€ ์˜ค๋ž˜ ๊ฑธ๋ฆผ(์ฒซ ๋ Œ๋”๋ง)
  • ์˜์กด์„ฑ ๋ฐฐ์—ด์— ๋”ฐ๋ผ ์บ์‹ฑ์˜ ์ฃผ๊ธฐ๋ฅผ ๊ฐ–๋Š”๋‹ค.

 

๐Ÿ“์ ์šฉ ๋ฐฉ๋ฒ•

 const ํ•จ์ˆ˜๋ช… = useMemo(() => ๋ฌด๊ฑฐ์šด ํ•จ์ˆ˜() , [ ])
=>
ํ•จ์ˆ˜์˜ ๊ฒฐ๊ณผ๊ฐ’์„ ๋‹ด๊ธฐ ์œ„ํ•ด ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•จ

๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
๋งํฌ
TAG
more
ยซ   2026/03   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
๊ธ€ ๋ณด๊ด€ํ•จ