UseMemo
1. useMemo์ ์ญํ
์ปดํฌ๋ํธ๋ ์ํ๊ฐ ๋ณ๊ฒฝ๋๊ฑฐ๋ ๋ถ๋ชจ ์ปดํฌ๋ํธ๊ฐ ๋ ๋๋ง์ด ๋ ๋๋ง๋ค ๋ฆฌ๋ ๋๋ง์ ํ๋ ๊ตฌ์กฐ๋ก ์ด๋ฃจ์ด์ก์
ํ์ง๋ง ๋๋ฌด ์ฆ์ ๋ฆฌ๋ ๋๋ง์ ์ฑ์ ์ข์ง ์์ ์ฑ๋ฅ์ ๋ผ์นจ
React Hook์ ํจ์ ์ปดํฌ๋ํธ๊ฐ ์ํ๋ฅผ ์กฐ์ํ๊ณ ๋ฐ ์ต์ ํ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๊ฒ๋ ํ๋ ๋ฉ์๋
๊ทธ์ค ๋ ๋๋ง ์ต์ ํ๋ฅผ ์ํ Hook๋ ์กด์ฌ โ useCallback๊ณผ useMemo๊ฐ ๋ฐ๋ก ๊ทธ ์ญํ ์ ํ๋ Hook
2. useMemo๋?
useMemo์ ํน์ ๊ฐ(value)์ ์ฌ์ฌ์ฉํ๊ณ ์ ํ ๋ ์ฌ์ฉํ๋ Hook์.
์๋ฅผ ๋ค์ด, ์๋ ์ปดํฌ๋ํธ๋ props๋ก ๋์ด์จ value๊ฐ์ calculate๋ผ๋ ํจ์์ ์ธ์๋ก ๋๊ฒจ์ result ๊ฐ์ ๊ตฌํ ํ,
<div>
์๋ฆฌ๋จผํธ๋ก ์ถ๋ ฅํ๋ ์ฝ๋๊ฐ ์๋ค๋ฉด,๋ง์ฝ ์ calculate๊ฐ return์ ์ค๋ ์๊ฐ์ด ๊ฑธ๋ฆฐ๋ค๋ฉด, ์ปดํฌ๋ํธ๋ ๋ ๋๋ง์ ํ ๋๋ง๋ค ์ด ํจ์๋ฅผ ๊ณ์ํด์ ํธ์ถํ๋ฉด์ ๋ก๋ฉ์๊ฐ์ด ๋์ด๋ ๊ฒ์ด๊ณ , ๊ฒฐ๊ตญ ์ฌ์ฉ์์๊ฒ ์ข์ง ์์ ๊ฒฝํ์ ์ค ์ ์์
์ Calculator ์ปดํฌ๋ํธ์ value๋ ์ผ์ข ์ ๊ฐ์ผ๋ก์, ๋ ๋๋ง์ ํ ๋๋ง๋ค ์ด value๊ฐ์ด ๊ณ์ ๋ฐ๋๋ ๊ฒ ์๋๋ผ๋ฉด & ๊ฐ์ ์ด๋๊ฐ์ ์ ์ฅ์ ํด๋๋ค๊ฐ ๋ค์ ๊บผ๋ด์ ์ธ ์๋ง ์๋ค๋ฉด ๊ตณ์ด calculate ํจ์๋ฅผ ํธ์ถํ ํ์๋ ์์ ๊ฒ์
์ฌ๊ธฐ์ useMemo Hook์ ์ฌ์ฉํ ์ ์์.
useMemo๋ฅผ ํธ์ถํ์ฌ calculate๋ฅผ ๊ฐ์ธ์ฃผ๋ฉด, ์ด์ ์ ๊ตฌ์ถ๋ ๋ ๋๋ง๊ณผ ์๋ก์ด ๊ตฌ์ถ๋๋ ๋ ๋๋ง์ ๋น๊ตํด value๊ฐ์ด ๋์ผํ ๊ฒฝ์ฐ โ ์ด์ ๋ ๋๋ง์ value๊ฐ ์ฌํ์ฉ ๊ฐ๋ฅ(Memoization)
3. Memoization ์ด๋?
๊ธฐ์กด์ ์ํํ ์ฐ์ฐ์ ๊ฒฐ๊ณผ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ์ ํด๋๊ณ , ๋์ผํ ์ ๋ ฅ์ด ๋ค์ด์ค๋ฉด ์ฌํ์ฉํ๋ ํ๋ก๊ทธ๋๋ฐ ๊ธฐ๋ฒ
์ด ๋ฉ๋ชจ์ด์ ์ด์ ์ ์ ์ ํ ์ฌ์ฉํ๋ค๋ฉด ๊ตณ์ด ์ค๋ณต ์ฐ์ฐ ํ ํ์๊ฐ ์์ผ๋ฏ๋ก ์ฑ ์ฑ๋ฅ ์ต์ ํ ๊ฐ๋ฅ โ useMemo๊ฐ ํ์ฉ
์ง์ ๋ฉ๋ชจ์ด์ ์ด์ ๊ฐ๋ ์ ์ด์ฉํด ๋ก์ง ๊ตฌํ์ด ๊ฐ๋ฅํ๋, useMemo Hook ํธ์ถ ์ ๋ก์ง ๊ตฌํ์ ๋์ ํด ์ฃผ๊ธฐ์ ํจ์ฌ ๊ฐํธํจ.
Last updated