https://velog.io/@apparatus1/Typescript-useRef-읽기-전용-에러

MutableRefObject | RefObject

useRef는 두가지 타입을 가지는데, 인터페이스를 뜯어보자면

function useRef<T>(initialValue: T): MutableRefObject<T>;

function useRef<T>(initialValue: T|null): RefObject<T>;

초기값으로 null을 설정하면 RefObject로 타입이 고정되고, RefObject는 Readonly 속성을 가지기 때문에 useRef가 읽기 전용으로 바뀌는것.