From 813ab3ab55998aa8182f81beec5137b03ebfe04a Mon Sep 17 00:00:00 2001 From: umsangdon Date: Tue, 1 Sep 2026 12:55:59 +0900 Subject: [PATCH] =?UTF-8?q?fix(B04):=20=EC=A1=B0=ED=95=A9=20=EC=83=9D?= =?UTF-8?q?=EC=84=B1=20=EC=9A=94=EC=B2=AD=EC=97=90=20=EC=A0=84=EC=9A=A9=20?= =?UTF-8?q?=ED=83=80=EC=9E=84=EC=95=84=EC=9B=83=EC=9D=84=20=EC=A4=80?= =?UTF-8?q?=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 화면 검증에서 드러났다. 드롭다운으로 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) --- B04_PreProcess/B04_PreProcess_Api_Fetch.ts | 11 ++++++++--- config/config_frontend.ts | 5 +++++ 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/B04_PreProcess/B04_PreProcess_Api_Fetch.ts b/B04_PreProcess/B04_PreProcess_Api_Fetch.ts index 0845ae71..161b63f1 100644 --- a/B04_PreProcess/B04_PreProcess_Api_Fetch.ts +++ b/B04_PreProcess/B04_PreProcess_Api_Fetch.ts @@ -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 { - // 조합 하나를 새로 만드는 요청이라 기본 30초로는 못 끝난다. + // 조합 하나를 새로 만드는 요청 — 실측 114초(4,900만 점)라 분석용 60초로도 abort 된다. return requestJson( `/projects/${projectId}/surface/analyze`, { method: "POST", body: JSON.stringify(request) }, - API_ANALYSIS_TIMEOUT_MS, + API_SURFACE_BUILD_TIMEOUT_MS, ); } diff --git a/config/config_frontend.ts b/config/config_frontend.ts index be85b77d..a8321ebb 100644 --- a/config/config_frontend.ts +++ b/config/config_frontend.ts @@ -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";