# Cuts/Res 실행 구조 검증 (2026-07-18) ## 적용 결과 읽기 전용 원본은 다음 개발 출력이다. ```text C:\Users\MD\source\repos\MBN_STOCK_N\MBN_STOCK_N\bin\Debug ``` `LegacyParityApp`은 이 위치의 `Cuts`와 허용된 `Res`를 빌드 입력으로 연결한다. 일반 Visual Studio Debug 출력에는 실제 DB용 `Res\MmoneyCoder.ini`도 실행 파일 옆에 복사하되, Git·게시·MSIX에는 넣지 않는다. 원본 저장소의 기존 수정 파일은 변경하지 않았다. ## 자산 무결성 | 대상 | 결과 | |---|---:| | 원본 `Cuts` | 179개 / 222,825,612 bytes | | Debug 실행 출력 `Cuts` | 179개, 원본과 파일별 경로·크기·SHA-256 일치 | | Release MSIX `Cuts` | 179개 / 222,825,612 bytes, 원본과 파일별 경로·크기·SHA-256 일치 | | Release MSIX `Res` | 허용 목록 34개 / 2,920,725 bytes, 원본과 파일별 크기·SHA-256 일치 | | Debug 실행 출력 `Res` | UI용 34개 + DB INI 1개 | | 필수 장면 | `Cuts\5001.t2s` 포함 | Release x64 개발 MSIX 결과는 다음과 같다. | 항목 | 값 | |---|---| | 패키지 | `MBN_STOCK_WEBVIEW.LegacyParityApp_0.1.0.0_x64.msix` | | 크기 | 61,239,787 bytes | | SHA-256 | `CDCC7C2FB9DA66A631473025C187B427FF84E073EB6F174D819DE327E58BAF7B` | | 전체 파일 | 291개 | | 빌드 | clean Release x64, 경고 0 / 오류 0 | 패키지, `build.appxrecipe`, `package.map.txt`, layout resfiles와 Release 실행 레이아웃에서 `MmoneyCoder.ini`, 복사본, `.bak`, 압축본, `afiedt`, 인증서·개인키·라이선스 파일과 K3D 벤더 파일은 모두 0건이다. 설치된 SDK 10.0.19041의 `MakeAppx`에는 `validate` 명령이 없어 해당 부가 명령은 사용할 수 없었고, 패키지 생성·BlockMap 및 파일별 payload 감사와는 별개다. 추가 감사에서 일반 출력의 DB INI가 `Clean` 뒤 남을 가능성과 패키지 빌드가 불필요하게 원본 DB INI를 요구하는 문제를 발견해 보완했다. 현재 일반 빌드 산출물은 `Clean`이 DB INI를 제거하고, MSIX 생성·게시 경로는 원본 DB INI가 없어도 검증 단계를 통과한다. ## 런타임 검증 - 실제 원본 UI INI를 사용한 조합 검사: 경고 0 - 해외/환율/지수 항목: 78/46/204개와 section·row 순서 일치 - 업종 코스피/코스닥: 각각 22개와 순서 일치 - 종목비교: 고정 대상 24개 + action 9개 일치 - 실제 원본 DB INI 파싱과 Oracle/MariaDB read-only smoke 통과 - 필수 scene selector 33/33 및 전체 query 58개 통과 - Debug x64 .NET 테스트: 2,760/2,760 통과 - Release x64 .NET 테스트: 2,760/2,760 통과 - Visual Studio 18.7.4(Visual Studio 2026) MSBuild로 LegacyParityApp Debug/Release x64 빌드 통과 - Legacy Web shell 테스트: 34/34 통과 - Web playout 테스트: 422/422 통과, scene catalog 35개와 cut coverage fixture 통과 - Release package-context UI-only smoke: `PASS`, `DRY RUN`, input/DB intent/native playout intent 0, Tornado 연결 0, 정상 종료 후 잔류 앱 프로세스 0 - Release package-context 실제 입력 smoke: `PASS`; `삼성` 검색에서 23개 결과를 표시하고 `삼성출판사`의 1열판 기본 3개 컷을 플레이리스트에 구성했다. 컷/플레이리스트 키보드, 단일·다중 드래그, 실제 Windows row-header drag와 이름 있는 플레이리스트 대화상자를 포함한 12개 checkpoint가 통과했다. DB write와 playout intent는 0건이었다. UI-only와 실제 입력 증거는 Git 제외 경로 `artifacts\package-ui-only-smoke` 및 `artifacts\package-input-smoke`에 JSON과 화면 캡처로 남긴다. 이 검증은 Release 기본 `DryRun`을 확인한 것이며 실제 Tornado2/PGM 명령을 보내지 않았다. ## 남아 있는 원본 자산 전제조건 현재 원본 `Cuts\Video`가 비어 있어 `s5006`의 큐브 배경 1개와 `s6001` 국가별 영상 13개는 이 배치만으로 제공되지 않는다. 일부 기본/스튜디오 `.vrv` 배경도 원본 제작 자산이 필요하다. 임의 파일로 대체하지 않으며 제공 전까지 해당 장면의 자산 preflight가 명시적으로 차단해야 한다.