공부
리액트 쿼리와 next에서의 native fetch에 대해 많이 알게 되었다. 일단 next에서 fetch를 사용하면 서버 사이드나 클라이언트 사이드에서 모두 캐시를 해주는 줄 알았지만 서버 사이드에서만 캐시를 해준다. 그래서 클라이언트 사이드에서는 서버 사이드에서 fetch를 하고 클라이언트 사이드로 props로 전달해 주는 방식을 사용하거나 리액트 쿼리를 사용하여 캐싱을 해줘야 한다.
리액트 쿼리의 훅은 크게 useMutation과 useQuery 이렇게 두 가지가 있다. 데이터베이스에서 새로운 값을 추가하거나 수정, 삭제하는 행위는 사이드 이펙트에 해당하는데 이렇게 사이드 이펙트가 발생하는 경우에는 useMutation을 사용하고 그렇지 않은 경우에는 useQuery를 사용한다. 그리고 두 훅에는 차이점이 있다. useQuery의 쿼리 함수는 컴포넌트가 마운트 되면서 자동으로 실행되지만 useMutation은 실제로 뮤테이션하는 함수를 직접 실행해 줘야 한다. mutate 함수를 통해 mutationFn으로 등록했던 함수를 실행할 수 있고, 그래야만 백엔드 데이터를 실제로 수정하게 된다.
운동
취업
기타