useState, useEffect, useRef, useMemo, useCallback 등 익숙한 함수들이 Reacat hook들인데 일반적인 JavaScript 함수를 사용합니다. React의 hook들은 간단히 말해서 클래스 컴포넌트에서 이전에 다소 복잡하게 관리되던 기능들을 간결하게 다룰 수 있는 기능이라고 볼 수 있습니다. 기존의 mount, update, unmount 됐을 때 조작하는 라이프사이클 메소드의 경우 러닝 커브를 높이기도 하고 의도하지 않은 사이드 이펙트의 여지도 있었는데, useEffect를 통해 이러한 동작을 좀 더 간결하게 관리할 수 있습니다. 그리고 커스텀 훅을 생성하고 기존 컴포넌트에서 재사용할 수 있기 때문에 코드 자체의 재사용성 측면에서도 장점이 될 수 있다고 볼 수 있습니다.