Fetch 취소는 오래된 응답이 화면을 덮는 것을 막는다
AbortController는 네트워크를 빠르게 만드는 장치가 아니라, 현재 화면과 맞지 않는 비동기 결과를 끊는 안전장치다.
| 단계 | 하는 일 | 확인할 것 | 실패 신호 |
|---|---|---|---|
| create | AbortController 생성 | 요청마다 새 controller인가 | 여러 요청이 같은 signal 공유 |
| connect | fetch 옵션에 signal 전달 | 실제 요청과 연결됐는가 | abort를 해도 요청이 계속됨 |
| abort | unmount나 새 요청에서 취소 | cleanup에서 호출되는가 | stale 응답이 state 갱신 |
| catch | AbortError와 진짜 오류 분기 | 취소는 조용히 정리 | 취소를 실패 toast로 표시 |
검색어 변경, 화면 전환, 중복 제출처럼 “이전 결과를 버려야 하는” 순간에 취소 경로가 필요하다.