# 검증 보고서: B05 레이아웃 및 앱 셸 푸터 제거 개선 - **검증 일자**: 2026-07-18 - **검증 대상 커밋 및 작업**: - `babf558d372a3c966e8238504855b4f4fdee0530` (260718_3) - `50da12c4914e65ea7994d9d58e15101ca7dd28d5` (260718_4) - `A00_Common/main.ts` 로컬 수정 (B그룹 전체 B01~B11 푸터 제외 정책 적용) - **검증자**: Antigravity (코드 검증 역할) --- ## 1. 검증 항목 및 소스코드 대조 결과 ### 1) B05 전용 레이아웃 개선 * **요구사항**: B05 상세/3D 영역을 헤더 제외 한 화면 높이에 고정하고 옵션 패널과 세로 크기 계산 분리. * **수정 파일**: * [B05_wf2_Route_UI_Page.ts](file:///D:/02_Software_Prog/임도설계%20및%20견적자동화%20프로그램%20개발/B05_wf2_Route/B05_wf2_Route_UI_Page.ts#L270-L273) * [B05_wf2_Route_UI_Style.css](file:///D:/02_Software_Prog/임도설계%20및%20견적자동화%20프로그램%20개발/B05_wf2_Route/B05_wf2_Route_UI_Style.css#L1-L22) * **코드 검증 결과**: * `renderB05Route` 함수에서 레이아웃 루트에 `b05-route-layout` 클래스를 부여하여 스타일 바인딩 지점을 명확히 제공함. * `height: calc(100vh - var(--spacing-64))` 및 `height: calc(100dvh - var(--spacing-64))`를 이중 정의하여 모바일/데스크톱 브라우저 환경에서 동적 뷰포트 높이 변화에 유연하게 대처함. * 부모 요소에 `overflow: hidden`, `min-height: 0`을 지정하여 3D 뷰포트 영역의 불필요한 스크롤 발생을 방지함. * `.b05-route__viewport`에 적용되어 있던 강제 최소 높이인 `min-height: 560px`를 `min-height: 0`으로 완화하여 플렉스박스 또는 그리드 내부에서 유연하게 수축할 수 있도록 설계됨. ### 2) B04~B09 및 B그룹 전체(B01~B11) 작업 화면 공통 푸터 제거 및 아울렛 확장 * **요구사항**: B그룹 전체(B01~B11) 작업 화면은 공통 앱 셸의 푸터를 제외하고 outlet을 헤더 아래 전체 화면 높이로 확장. * **수정 파일**: * [A00_Common/app_shell.ts](file:///D:/02_Software_Prog/임도설계%20및%20견적자동화%20프로그램%20개발/A00_Common/app_shell.ts#L187-L200) * [A00_Common/main.ts](file:///D:/02_Software_Prog/임도설계%20및%20견적자동화%20프로그램%20개발/A00_Common/main.ts#L13-L41) * **코드 검증 결과**: * `renderShell` 함수가 `showFooter` 불리언 옵션(기본값 `true`)을 받도록 파라미터화하여 기존 셸 호출 코드와의 완벽한 하위 호환성을 보장함. * 푸터가 비활성화된 경우 `app-outlet--without-footer` 클래스를 추가하고, 이를 통해 푸터 높이(56px)를 제외한 순수 뷰포트 높이 `min-height: calc(100vh - 64px)`를 만족시킴. * `main.ts` 내 `FOOTERLESS_ROUTES` 상수를 확장하여 기존 B04~B09 외에도 B01_ACCOUNT, B02_PROJ_REGISTER, B03_FILE_INPUT, B10_PAYMENT, B11_STATUS를 모두 추가함. * 이를 통해 B그룹의 전체 단계(B01~B11) 진입 시 공통 푸터가 렌더링되지 않으며, 화면 전체 높이를 온전히 사용할 수 있도록 정합성이 확보됨. --- ## 2. 기술적 적합성 및 안정성 검증 1. **TypeScript 타입 체크 검증**: * 로컬 수정 이후 프로젝트 루트에서 `tsc --noEmit`을 실행한 결과 타입 에러나 참조 오류 없이 정상적으로 빌드 및 타입 검증이 완료됨을 확인함. 2. **CSS 디자인 시스템 정합성**: * 사용된 CSS 변수 `--spacing-64`는 [ui_template_theme.css](file:///D:/02_Software_Prog/임도설계%20및%20견적자동화%20프로그램%20개발/ui_template/ui_template_theme.css#L129)에 `64px`로 올바르게 정의되어 있어, 헤더 크기와 공백 처리가 정밀하게 매칭됨. 3. **성능 및 레이아웃 이탈 여부**: * 3D 캔버스 컨테이너의 크기를 부모 컨테이너가 제어하며 화면 외각으로 삐져나가는 현상(Layout Overflow)이 방지됨. --- ## 3. 종합 의견 * **합격 (PASS)**: 설계 목표인 B05 3D 레이아웃 세로 크기 고정 및 B그룹 전체(B01~B11) 화면의 하단 푸터 제거를 통한 아울렛 화면 확장이 부작용(Side Effect) 없이 완벽히 구현되었습니다.