fix(B04): 조합 생성 요청에 전용 타임아웃을 준다

화면 검증에서 드러났다. 드롭다운으로 classification/dtm 을 요청하면 UI가 실패하고
드롭다운이 되돌아갔다. 서버는 200을 돌려주고 있었다 — 실측 114초·144초가 걸리는데
API_ANALYSIS_TIMEOUT_MS(60초)가 먼저 abort 했다.

조합 하나를 만드는 요청은 구조화된 점군(4,900만 점) 전체를 다시 보간하므로
분석용 60초로도 모자란다. API_SURFACE_BUILD_TIMEOUT_MS(15분)를 새로 두고
analyzeSurface 에만 쓴다. 사용자에게는 모달이 미리 "수 분이 걸립니다"로 알린다.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-09-01 12:55:59 +09:00
co-authored by Claude Opus 5
parent 10a629973b
commit 813ab3ab55
2 changed files with 13 additions and 3 deletions
+8 -3
View File
@@ -11,7 +11,12 @@
* - 오류 응답 형식 {status:"error", message:"..."}을 Error로 변환.
* ========================================================================== */
import { API_ANALYSIS_TIMEOUT_MS, API_BASE_URL, API_TIMEOUT_MS } from "@config/config_frontend";
import {
API_ANALYSIS_TIMEOUT_MS,
API_BASE_URL,
API_SURFACE_BUILD_TIMEOUT_MS,
API_TIMEOUT_MS,
} from "@config/config_frontend";
/** 지표면 분석 실행 요청 (SurfaceAnalyzeRequest) */
export interface SurfaceAnalyzeRequest {
@@ -178,11 +183,11 @@ export async function analyzeSurface(
projectId: string,
request: SurfaceAnalyzeRequest,
): Promise<SurfaceAnalyzeResponse> {
// 조합 하나를 새로 만드는 요청이라 기본 30초로는 못 끝난다.
// 조합 하나를 새로 만드는 요청 — 실측 114초(4,900만 점)라 분석용 60초로도 abort 된다.
return requestJson<SurfaceAnalyzeResponse>(
`/projects/${projectId}/surface/analyze`,
{ method: "POST", body: JSON.stringify(request) },
API_ANALYSIS_TIMEOUT_MS,
API_SURFACE_BUILD_TIMEOUT_MS,
);
}
+5
View File
@@ -20,6 +20,11 @@ export const API_TIMEOUT_MS = 30_000;
* 일반 요청에 이 값을 쓰면 장애 시 화면이 오래 멈추므로 분석 엔드포인트에만 쓴다. */
export const API_ANALYSIS_TIMEOUT_MS = 60_000;
/** 지표면 모델 한 조합을 새로 만드는 요청용 타임아웃 (ms).
* 구조화된 점군 전체를 다시 보간하므로 실측 114초(4,900만 점, 캐시 있음)가 걸렸다.
* 큰 LAS는 더 걸리므로 넉넉히 둔다 — 사용자에게는 모달에서 미리 알린다. */
export const API_SURFACE_BUILD_TIMEOUT_MS = 900_000;
/** B03~B09 워크플로우에서 사용할 현재 프로젝트 UUID 저장 키 */
export const CURRENT_PROJECT_ID_KEY = "frd_current_project_id";