--- status: draft page_id: B04_PreProcess related_pages: ["[[B04_PreProcess/B04_backend]]", "[[B04_PreProcess/B04_api]]", "[[B04_PreProcess/B04_dependencies]]", "[[db_schema/files_surface]]", "[[architecture/project_map]]", "[[architecture/workflow_data_flow]]"] last_updated: 2026-07-18 --- # B04_PreProcess — DB 이 페이지가 쓰는 테이블 (정의는 concepts에, 여기선 용도만). ## 쓰는 테이블 | 테이블 | 이 페이지의 용도 | 정의 | |---|---|---| | `processed_point_cloud` | 필터/변환된 포인트클라우드 저장(input_files 참조) | [[db_schema/files_surface]] | | `surface_models` | TIN/DTM/NURBS/implicit/meshfree 모델 메타데이터 (status: PROCESSING, COMPLETE, CONFIRMED, FAILED) | [[db_schema/files_surface]] | | `terrain_layers` | 등고선 등 파생 레이어 | [[db_schema/files_surface]] | | `project_workflow_stages` | WF1(stage 1) 상태 전이·조회 | [[workflow_state]] | | `input_files` | 분석 대상 LAS/LAZ 조회 | [[db_schema/files_surface]] | | `projects` | (레거시 폴백) status 조회 | [[db_schema/projects]] | ## Repository 함수 | 함수 | 위치 | 역할 | |---|---|---| | `create_processed_point_cloud()` | `B04_PreProcess_Repository.py:28` | processed_point_cloud INSERT | | `create_surface_model()` | `B04_PreProcess_Repository.py:92` | 모델별 메타데이터 저장 | | `get_input_file()` | `B04_PreProcess_Repository.py:177` | 입력 LAS 단건 조회 | | `clear_confirmed_surface_models()` | `B04_PreProcess_Repository.py:269` | 재분석 시 기존 CONFIRMED 모델들을 COMPLETE로 초기화 | | `confirm_surface_model()` | `B04_PreProcess_Repository.py:282` | 지정된 모델을 CONFIRMED 상태로 업데이트하고 기존 확정 모델 초기화 | | `delete_project_surface_models()` | `B04_PreProcess_Repository.py:321` | 재분석 시 이전 세대의 유령 모델 정보 누적 방지를 위해 기존 surface_models 삭제 | ## 참고 - `save_surface_analysis_to_db()`([[B04_PreProcess/B04_backend]])가 processed_point_cloud + surface_models를 한 트랜잭션으로 저장(호출자가 begin/commit) - WF1 단계 판정 SSOT는 `project_workflow_stages`. `projects.status`는 레거시 폴백 경로에서만 참조 → [[workflow_state]]