useCallback은 Memorization 기법을 이용하여 불필요한 렌더링과 계산을 줄임으로 컴포넌트 성능을 최적화하기 위한 목적의 Hook (=== useMemo)
문제점 : 객체 초기화를 멈추지 않으면 (함수 렌더링), 렌더링이 계속 발생한다.
해결법 : useMemo, useCallback => 객체(함수) 자체를 Memorization 함으로써 해결할 수 있다.
값과 콜백을 메모리에 저장해두고, 특정 값이 변경될 때마다 호출하여 필요할 때 가져다 쓴다.
useEffect는 렌더링시 발생하는 Side Effect를 다루기 위한 목적의 Hook
전역 데이터를 관리하기 위한 목적의 Hook