의존성 배열
요청 조건에 쓰는 id, query, option이 바뀔 때만 effect가 다시 실행되게 맞춥니다.
useEffect 데이터 요청은 성공 응답 처리만으로 끝나지 않습니다. dependency 변화, 취소, 늦은 응답을 한 수명 주기로 설계합니다.
요청 조건에 쓰는 id, query, option이 바뀔 때만 effect가 다시 실행되게 맞춥니다.
AbortController나 stale flag로 늦게 도착한 응답이 최신 화면을 덮지 않게 합니다.
idle, loading, success, empty, error를 분리해 화면이 다음 행동을 알려 주게 합니다.
unmount 뒤 setState가 실행되지 않는지 확인합니다.
빠른 입력 변경에서 이전 응답이 최신 데이터를 덮지 않아야 합니다.
실패 메시지와 재시도 조건을 사용자 흐름 안에 둡니다.