useMemo 를 사용하면 함수형 컴포넌트 내부에서 발생하는 연산을 최적화할 수 있다. 리액트는 기본적으로 state의 값이 변할 때 마다 새로 렌더링이 이뤄진다. 특정 state 값이 변할 때에만 렌더링을 새로 하면 효율적이겠지만 기본적으로 state의 값 중 하나라

ref 는 특정 DOM을 직접 건드리고 싶은 경우에 지정해 사용한다. DOM을 조작할 때 getElementById 혹은 querySelector 등을 사용해 노드를 선택하고 이를 변수에 담아 활용했다.