useAsync 훅의 종말 : Suspense & ErrorBoundary
리액트를 처음 배우던 시절 나는 비동기 데이터를 다루는 방식의 하나로 useAsync라는 이름의 커스텀 훅을 접하게 되었다. 이는 컴포넌트 내부에서 비동기 작업을 안전하게 처리하기 위한 수단이었는데, 그 코드를 기억나는대로 작성해보자면 아래와 같았다.export const useAsync = (fn) => { const [state, setState] = useState({ data: null, loading: true, error: null }); useEffect(() => { const fetchData = async () => { try { setState((prev) => ({ ...prev, loading: true })); ..