useRef는 변수를 저장하고 접근하기 위한 hook입니다. useRef는 컴포넌트가 리렌더링될 때마다 동일한 값을 반환하기 때문에, 값을 변경해도 리렌더링되지 않습니다. 예를 들면 특정 부분에 "북마크"를 달아두고 나중에 그 부분을 쉽게 찾아갈 수 있게 해주는 도구라고도 볼 수 있습니다.
useRef는 특정 DOM 요소에 직접 접근하기 위해 사용되는 리액트의 hook입니다. 자바스크립트에서는 일반적으로 DOM에 접근하기 위해 querySelector같은 메서드를 사용하지만 리액트에서는 useRef를 사용합니다. useRef를 사용하면 반환되는 객체에는 '.current'라는 프로퍼티가 있는데, 이 프로퍼티는 useRef의 인자로 제공된 초기 값으로 설정됩니다. 중요한 점은 이 '.current'값이 변경되더라도 그것이 컴포넌트의 리렌더링을 유발하지 않는다느 것입니다. 또한 useRef는 컴포넌트의 생명주기 동안 동일한 ref객체를 유지하기 때문에 여러번의 리렌더링이 일어나도 동일한 값이 유지됩니다.