effect fetch lifecycle

useEffect 데이터 요청 수명

컴포넌트가 렌더링된 뒤 요청을 시작하고, 의존성이 바뀌거나 언마운트될 때 AbortController로 오래된 요청을 정리합니다.

effect start

useEffect 내부에서 async 함수를 정의해 호출하고 loading과 error 상태를 초기화합니다.

dependency

userId, page, query처럼 요청 결과를 바꾸는 값만 의존성 배열에 넣습니다.

cleanup

AbortController나 mounted flag로 언마운트 후 setState 경고와 오래된 응답 반영을 막습니다.

deps

의존성 누락으로 오래된 데이터가 보이지 않는지 확인합니다.

race

빠르게 값이 바뀔 때 마지막 요청 결과만 반영합니다.

empty

빈 배열 effect는 최초 로드 한 번만 실행됩니다.

retry

실패 후 다시 요청할 사용자 경로가 있습니다.