"signal is aborted without reason" 오류. 프론트 공통 타임아웃이 30초인데
등고선 하강 + 확장 루프가 33초 걸려 계산 도중 abort 됐다.
- config_frontend 에 API_ANALYSIS_TIMEOUT_MS(60초) 추가. 공통 30초는 그대로 두고
분석 엔드포인트(primary-region, basins)에만 적용한다. 일반 요청까지 늘리면
장애 시 화면이 오래 멈춘다.
- requestJson 에 timeoutMs 인자 추가. AbortError 원문은 원인을 알 수 없으므로
"요청이 N초 안에 끝나지 않았습니다"로 바꿔 던진다.
같이 속도도 줄였다 (33.3s -> 26.2s, 결과 동일)
- 하강 방향장은 해석 영역과 무관하다 — 등고선 기하만으로 정해진다. 확장
회차마다 다시 만들 이유가 없어, 격자가 커졌을 때만 새로 만들고 아니면
재사용한다. 해석 영역은 마지막에 마스크로만 씌운다.
- 1차 영역 bbox 는 영역에 딱 붙어 있어 첫 회차부터 격자를 넓혀야 했다.
시작할 때 사방에 확장폭 2배 여유를 둬 몇 회차는 격자를 안 넓히고 돈다.
검증: 적색 457,404 로 이전과 동일. 확장 3회 닫힘, 방향장 계산 4회 -> 2회.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>