blog

useCallback을 사용해야할 때

  • React
  • useCallback의 Cost

    useCallback은 간단히 말하면 함수의 참조값을 컨트롤하고 싶을 때라고 말할 수 있을 것 같다.

    1. React.memo를 통해 컴포넌트의 렌더링을 최적화할 경우
    2. useEffect, useMemo, useCallback의 dependencies에 해당 함수가 들어가야할 경우

    특별한 이유가 있지 않으면 useCallback은 매 렌더링마다 함수를 재실행할 뿐만 아니라 memoization을 해야하기 때문에 메모리도 잡고 있다. 클로저로써 자유 변수들이 garbage collection대상이 되지 않도록 할 수도 있다. 현대 브라우저는 함수를 생성하는데 많은 비용이 들어가지 않으므로 useCallback을 사용해야할 특정 상황이 아니라면 오히려 garbage collection이 되어 메모리를 덜 잡아먹고 함수를 재실행하는 비용도 발생하지 않을 수 있다.

    결론

    간단하다. useCallback을 남발하기보다는 정말 필요한 상황일 때만 사용해야 오히려 비용을 줄일 수 있다.
    간단한거지만 면접에서 대답을 잘 못했기에 찾아보았다 😇

    주의할 점이 있다. 사용하는 메모리를 줄이고 불필요한 비용을 발생하지 않는 것이 중요하다. 하지만 역할을 잘 나누고, 관심사를 분리하는 것을 잘하지 못 했다면 항상 변화하는 프로그램에 대응을 잘 못 할 것이며, 이것은 소를 신경쓰다가 대를 잃는 결과를 발생시킬 것이다.

    참고

    Top
    Copyright©2022 Klog(blackbell) all right reserved