피드로 돌아가기
Dev.toFrontend
원문 읽기
Angular Resource API의 Reactive 특성에 따른 Router Guard 적용 불가 분석
Angular resources are not a good fit for Guards
AI 요약
Context
Angular 22 Resource API 도입으로 비동기 데이터 쿼리 및 상태 관리의 선언적 처리가 가능해진 환경. 그러나 Navigation을 차단하여 권한을 검증하는 Router Guard의 동기적 평가 메커니즘과 Resource API의 비동기 Signal 구조 간의 정합성 결여 발생.
Technical Solution
- Resource API의 Signal 기반 상태 관리로 인한 초기값
undefined반환 특성 파악 - Guard의 즉각적인 boolean 평가 로직에 따른 API 응답 대기 없는 내비게이션 취소 문제 식별
- Signal 상태를 Observable로 강제 변환하는 추가 오버헤드 발생 및 API 설계 의도 훼손 확인
- 단일 비동기 이벤트 완료 시까지 프로세스를 블로킹하는 Guard의 목적에 부합하는 RxJS Observable 채택
- HttpClient를 통한 스트림 반환 방식으로 Router의 내비게이션 제어 흐름 유지
- UI 레이어의 Reactive 데이터 바인딩과 라우팅 제어 로직의 책임 분리 설계
실천 포인트
1. Router Guard 및 Resolver 설계 시 Signal 기반의 Resource API 대신 Observable/Promise 사용 여부 검토
2. UI 상태 바인딩은 Resource API를 사용하되, Navigation 제어와 같은 제어 흐름(Control Flow)은 기존 비동기 프리미티브 활용
3. Signal의 `.value()` 호출 시 초기 상태가 `undefined`일 가능성과 그에 따른 조건문 동작 방식 검증