React 메모이제이션

useCallback과 useMemo 선택 기준

두 훅은 모두 값을 기억하지만, useCallback은 함수 참조를, useMemo는 계산 결과를 안정화한다는 점이 다릅니다.

Function Prop1
useCallback2
Expensive Value3
useMemo4
01

기억할 대상 구분

자식에게 넘기는 함수인지, 계산된 값인지 먼저 분리합니다.

02

의존성 점검

deps 배열에 실제로 참조하는 상태와 props가 빠지지 않았는지 봅니다.

03

자식 memo 확인

함수 참조 안정화는 memo된 자식과 함께 쓸 때 효과가 커집니다.

04

측정 후 유지

렌더 횟수나 계산 비용이 실제로 줄었는지 DevTools로 확인합니다.

사용 기준

  • 가벼운 계산은 useMemo보다 그냥 계산하는 편이 더 단순할 수 있습니다.
  • deps를 억지로 비우면 오래된 상태를 참조하는 버그가 생길 수 있습니다.
  • 최적화 훅 자체도 비용이 있으므로 병목이 확인된 곳에 적용합니다.

선택표

useCallback함수 참조
useMemo계산값
deps갱신 조건