useState, useEffect를 사용한 리액트 자동완성 기능 구현.
useRef는 왜, 언제 쓰는 훅이고 어떻게 쓸까?
배열에 바로 접근하면 안 된다는 사실을 명심하고 스프레드 연산자를 통해 복사를 진행한 후 set 메소드를 이용하자.
어떤 환경이냐에 따라 환경 변수 파일을 설정해주는 방법이 다르다.
framer-motion으로 각 라우터마다 부드러운 페이지 전환을 적용할 수 있다.