피드로 돌아가기
Dev.toFrontend
원문 읽기
Axios CancelToken을 활용한 불필요한 네트워크 리소스 낭비 방지 설계
Effective Request Cancellation with Axios in JavaScript
AI 요약
Context
비동기 HTTP 요청의 중첩 발생 시 기존 요청의 응답이 뒤늦게 도착하여 데이터 정합성이 깨지는 Race Condition 발생 가능성 상존. 클라이언트 측에서 제어 불가능한 Pending 요청의 누적으로 인한 메모리 및 네트워크 리소스 낭비 해결 필요.
Technical Solution
- CancelToken.source()를 통한 요청 식별자 및 제어 함수 생성
- 전역 상태로 관리되는 axiosCancelSource를 요청 설정에 주입하여 동일 세션 내 이전 요청 제어 구조 설계
- resetCancelSource 함수를 통한 기존 요청 강제 중단 및 신규 Token 발행의 원자적 처리
- axios.isCancel() 메서드를 활용한 일반 런타임 에러와 의도된 취소 요청의 논리적 분리 처리
- try-catch-finally 블록 내 취소 로직 배치를 통한 요청 생명주기 관리 및 리소스 해제 보장
실천 포인트
- 중복 요청이 빈번한 검색어나 탭 전환 로직에 CancelToken 적용 검토 - 취소 요청 발생 시 사용자 인터페이스(UI)에 영향을 주지 않는 Graceful Error Handling 구현 - 전역 Token 사용 시 서로 다른 API 요청 간의 간섭 여부를 고려한 스코프 설계