ํฐ์คํ ๋ฆฌ ๋ทฐ
memoization
๐์ฌ์ฉ ์ด์
- ํ์์ ์์ ์ปดํฌ๋ํธ๋ ๋ถ๋ชจ์ ๋ฆฌ๋ ๋๋ง์ ๋ฐ๋ผ ์ด์ฉ ์ ์์ด ๋ ๋๋ง ๋๋ค.
- ๋ถํ์ํ ๋ ๋๋ง์ด ๋ฐ์ํ์ง ์๋๋ก ์ต์ ํ
- ๋ฐ๋์ ํ์ํ ๊ฒฝ์ฐ์๋ง ์ฌ์ฉ
+) ๋ชจ๋ ํจ์๋ฅผ memo ์ฒ๋ฆฌํ๋ค๊ณ ํด์ ๋นจ๋ผ์ง๋ ๊ฒ์ ์๋. ๊ฒฐ๊ตญ ์บ์ฑ ์ฒ๋ฆฌํ ๊ฐ์ ๋ฐ๋ก ์ ์ฅํด์ผํ๊ธฐ ๋๋ฌธ.
Memo (React.memo)
๐ํน์ง
- ์ปดํฌ๋ํธ๋ฅผ ์บ์ฑ (hook X)
- ํจ์ํ ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉ ์, memo๊ฐ ๋ฌดํจ๋จ(์ข์ธก์ ํ ๋นํ๋ฏ ํจ์๋ ๋ค์ ์์ฑ๋จ = ์ฃผ์๊ฐ ๋ฐ๋)
๐์ ์ฉ ๋ฐฉ๋ฒ
- ๋ ๋๋ง์ ๋ง์ผ๋ ค๋ ์ปดํฌ๋ํธ์์ export default React.memo(์ปดํฌ๋ํธ๋ช )
useCallback
๐ํน์ง
- ํจ์๋ฅผ ์บ์ฑ(hook O)
- ํจ์ํ ์ปดํฌ๋ํธ(ํจ์ ์์ฒด)๋ฅผ memo
- ํจ์๋ฅผ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ ์ฅํด๋๊ณ (์ฃผ์๊ฐ ๋ฐ๋๋ ๊ฒ์ ๋ง์) ํน์ ์กฐ๊ฑด์ด ์๋ ๊ฒฝ์ฐ์๋ ๋ณ๊ฒฝ๋์ง ์๋๋ก ํด์ผ ํจ
- ํจ์๊ฐ ๋ณ๊ฒฝ๋จ์ ๋ฐ๋ผ ๋ค์ memoํ๊ณ ์ถ๋ค๋ฉด ์์กด์ฑ ๋ฐฐ์ด ๋ด๋ถ์ ๋ณ๊ฒฝ ์์ ์ ์ ๋ ฅํด์ฃผ๊ธฐ
๐์ ์ฉ ๋ฐฉ๋ฒ
- const ํจ์๋ช
= useCallback(ํจ์๋ก์ง, [ ])
=> ์์กด์ฑ ๋ฐฐ์ด์๋ ๋ณ๊ฒฝ๋ ํน์ ์กฐ๊ฑด์ ๋ช ์
useMemo
๐ํน์ง
- ๊ฐ์ ์บ์ฑ
- ๊ฐ์ด ๊ต์ฅํ ๋ฌด๊ฑฐ์ธ ๋ ๋ ๋๋ง์ด ์ค๋ ๊ฑธ๋ฆผ
- ์ต์ด ํ ๋ฒ์ ์ค๋ ๊ฑธ๋ฆผ(์ฒซ ๋ ๋๋ง)
- ์์กด์ฑ ๋ฐฐ์ด์ ๋ฐ๋ผ ์บ์ฑ์ ์ฃผ๊ธฐ๋ฅผ ๊ฐ๋๋ค.
๐์ ์ฉ ๋ฐฉ๋ฒ
const ํจ์๋ช
= useMemo(() => ๋ฌด๊ฑฐ์ด ํจ์() , [ ])
=> ํจ์์ ๊ฒฐ๊ณผ๊ฐ์ ๋ด๊ธฐ ์ํด ํจ์๋ฅผ ์คํํจ
'Language > React' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [โ๏ธ] Redux - ์๊ฐ ๋ฐ ์ค์ + counter ์ฑ ์ธํ (store ๋ง๋ค๊ธฐ) (0) | 2025.02.01 |
|---|---|
| [โ๏ธ] custom hook (0) | 2025.01.30 |
| [โ๏ธ] useContext (0) | 2025.01.30 |
| [โ๏ธ] useEffect, useRef (0) | 2025.01.30 |
| [โ๏ธ] useState : ํจ์ํ ์ ๋ฐ์ดํธ (0) | 2025.01.30 |