Memoization Hooks (useCallback, useMemo)
메모이제이션(Memoization)은 프로그램이 동일한 계산을 반복할 때, 이전에 계산한 값을 메모리에 저장함으로써 중복되는 연산을 제거해서 프로그램 실행 속도를 빠르게하는 기술이다.
리액트 함수형 컴포넌트에서는 이러한 메모이제이션을 돕기 위한 두가지 Hook을 제공한다.
메모이제이션을 사용할 수 있는 경우
아래와 같은 경우 메모이제이션 훅 useCallback과 useMemo를 사용할 수 있습니다.
- 렌더링 마다 함수가 새로 생성되어 참조값이 변하는 경우
- 실행되는 함수가 복잡한 연산을 수행하는 경우
useCallback
useCallback(fn, deps);
useCallback 함수는 콜백 함수를 메모이제이션하고 반환한다.
const memoizedCallback = useCallback(() => {
doSomething(a, b);
}, [a, b]);