7.5 KiB
원본 Cuts/Res 런타임 배치
기준 원본
원본 저장소는 읽기 전용이며 다음 개발 출력만 런타임 자산 기준으로 사용한다.
C:\Users\MD\source\repos\MBN_STOCK_N\MBN_STOCK_N\bin\Debug
├─ Cuts
└─ Res
Visual Studio가 시작하는 프로젝트는
src\MBN_STOCK_WEBVIEW.LegacyParityApp\MBN_STOCK_WEBVIEW.LegacyParityApp.csproj다.
이 프로젝트는 원본 경로가 존재하는 전체 빌드에서도 Cuts를 저장소나 빌드 출력으로 복제하지
않고 선택한 원래 폴더를 직접 사용한다. 실행 파일 옆에는 UI용 Res allowlist와 Web 자산만
배치한다.
MBN_STOCK_WEBVIEW.LegacyParityApp.exe
Res\...
Web\...
소스 전용 빌드와 전체 자산 빌드
기본 LegacyRuntimeAssetsMode는 Auto다.
- 첫 실행 창이 선택한 두 경로를 저장하고 만든 Git 제외
Directory.Build.local.props가 있으면, 그 공통 부모 아래의 원래Cuts와Res경로를 직접 사용한다. - 새 Git clone의 Debug/F5는 주변의 과거 원본 경로를 자동 선택하지 않고 소스 전용 첫 실행 설정 앱을 만든다.
- 원본 경로를 명시하거나 Release MSIX를 만들면 기본값이
Required로 바뀌어 누락 자산을 다시 오류로 차단한다.
소스 전용 앱은 메인 송출 화면 대신 Cuts와 Res 두 폴더만 받는 네이티브 첫 실행 창을
표시한다. 이 프로세스는 DB를 초기화하지 않고 과거 로컬 송출 프로필, 운영자 송출·배경 경로,
프로세스 환경 override와 Development Live 실행 인수를 사용하지 않으며 송출 엔진 자체를
만들지 않는다. 설정이 성공하면 창을 닫고 Visual Studio에서 F5를 한 번 더 눌러 전체 자산
빌드를 시작한다. 출력과 중간 패키징 파일은 이전 전체 빌드의 자산이나
MmoneyCoder.ini를 재사용하지 않도록 다음 별도 경로에 생성된다.
첫 실행 화면은 선택한 두 폴더의 고정 로컬 경로와 Cuts/Res 이름·공통 부모를 확인하고
정확한 Res\MmoneyCoder.ini의 Oracle/MariaDB 형식을 검증한다. 이어서 검증된
Initialize-ExistingDevelopmentPc.ps1로 경로 binding, C:\K3DAsyncEngine x64 등록/파일,
지속 pin, Development Live 승인과 Debug x64 빌드를 확인한다. DB INI는 복사하지 않으며
DB 연결, K3D COM 활성화 또는 Tornado2/PGM 명령은 실행하지 않는다.
src\MBN_STOCK_WEBVIEW.LegacyParityApp\bin\SourceOnly\...
src\MBN_STOCK_WEBVIEW.LegacyParityApp\obj\SourceOnly\...
원본 경로가 다른 장비에서 전체 기능을 빌드하려면 다음 속성으로 bin\Debug 위치를 지정한다.
명시한 경로는 자동으로 Required 취급된다.
/p:LegacyRuntimeSourceRoot="D:\path\to\MBN_STOCK_N\MBN_STOCK_N\bin\Debug"
Cuts와 Res 폴더 또는 주요 UI INI가 없으면 전체 빌드는 원인을 표시하고 중단한다.
특정 장면·영상 파일은 빌드나 첫 실행에서 전부 요구하지 않고 실제 사용 시에만 개별 확인한다.
경로 탐색이나 CI에서 소스 전용 동작을 명시적으로 확인할 때만 다음 조합을 사용할 수 있다.
이는 전체 기능 또는 배포 승인용 빌드가 아니다.
/p:LegacyRuntimeAssetsMode=Auto
Git에는 Cuts, DB 자격증명, 벤더 DLL, 라이선스, 인증서 또는 로컬 구성을 추가하지 않는다.
Cuts
Cuts의 전체 파일과 하위 구조는 출력·게시·MSIX에 복사하지 않는다. 첫 실행 또는 사용자 설정
메뉴에서 선택한 고정 로컬 경로를 sceneDirectory로 저장하고, 앱은 그 원래 폴더에서 필요한
장면과 영상만 읽는다. 전체 파일 열거, ZIP 생성, 크기·해시 검사는 하지 않는다.
따라서 아래처럼 일부 외부 영상이 없어도 경로 설정과 앱 시작은 정상 완료된다.
s5006의Video\큐브배경.vrvs6001의 국가별Video\20201008_<국가>.vrv13개- 원본 코드가 참조하는 일부 기본/스튜디오
.vrv배경
해당 장면을 실제로 선택하거나 송출할 때에만 필요한 파일을 안전하게 확인하며, 없으면 그 동작에서 정확한 누락 원인을 표시한다. 다른 장면이나 설정까지 막지는 않는다.
사용자 설정 메뉴
좌측 메뉴 하단의 설정에서는 네이티브 폴더 선택 창으로 디자인(Cuts) 폴더, 설정(Res)
폴더와 선택 사항인 운영 배경 폴더를 직접 지정할 수 있다. 선택한 고정 로컬 경로와 Res
폴더 자체만 확인한 뒤 다음 앱 전용 파일에 저장한다. 폴더 내용 전체는 검사하지 않지만,
Development Live는 다음 시작에서 선택한 Res\MmoneyCoder.ini를 별도로 엄격하게 검증한다.
%LOCALAPPDATA%\MBN_STOCK_WEBVIEW\Config\runtime-folders.local.json
폴더 변경과 기본값 복원은 자동 저장되지만 런타임 자산과 카탈로그에는 앱을 다시 시작한 뒤
적용된다. 같은 화면의 왼쪽 메뉴 펼쳐서 시작은 즉시 화면에 반영되고 다음 시작 상태도 위 파일에
저장된다. 절대 경로는 Web 콘텐츠에 전달하지 않는다.
이 화면은 자산 위치와 메뉴 시작 상태만 관리한다. DB 자격증명의 내용은 표시하거나 직접 편집하지 않는다. Debug/Release Live 라우팅, KTAP 호스트·포트·채널, Test/Live 게이트, scene allowlist와 벤더 해시는 보호 설정으로 유지되며 폴더를 선택해도 완화되거나 변경되지 않는다.
Res와 DB 설정
UI 이미지와 UI용 INI는 allowlist로 출력·게시·MSIX에 배치한다. 앱은 실행 시 이 파일들을 CP949 레거시 형식으로 읽고, 파일의 section/row/order를 기존의 폐쇄형 C# action catalog와 대조한 뒤 UI를 구성한다. INI가 임의의 scene/action을 새로 추가할 수는 없다.
MmoneyCoder.ini는 실제 자격증명을 포함하므로 빌드 입력, 출력, 개발 인수용 런타임
묶음과 MSIX Content에 넣지 않는다. 저장된 resourceDirectory가 있는 Development Live는
그 폴더의 정확한 MmoneyCoder.ini를 매 실행 직접 읽는다. 파일이 없거나 안전·형식 검증에
실패해도 다른 DB 설정으로 대체하지 않고 Live 엔진 생성과 자동 연결을 차단한다.
다음 사용자 전용 로컬 overlay와 Config\database.local.json은 저장된
resourceDirectory가 없는 기존 설치에서만 호환 fallback으로 사용한다.
%LOCALAPPDATA%\MBN_STOCK_WEBVIEW\Res\MmoneyCoder.ini
이 규칙은 endpoint가 노출되어도 무방한 테스트 개발 서버인 경우에도 같다. 첫 실행 설정은
원본 MmoneyCoder.ini의 형식만 확인하고 복사하지 않는다. DB 자격증명은 Git,
Debug/Release 출력, 게시, runtime bundle과 MSIX에 포함하지 않는다.
사용자 설정 메뉴에서 별도 Res 폴더를 선택하면 앱은 경로만 저장하고 다음 시작부터 그
폴더의 DB 설정을 사용한다. 파일 내용과 자격증명은 Web 화면에 노출하지 않으며 화면에서 직접
편집할 수도 없다. 검증된 Development Live는 DB 환경 override를 무시한다. 단, one-shot
Gate A 검증 실행에서는 이 사용자 선택을 무시하고 검증 계획에 고정된
database.local.json만 사용한다.
MmoneyCoder - 복사본.ini, .bak, .zip, afiedt.buf.txt는 런타임 소비자가 없고 과거
자격증명 또는 SQL 흔적을 담을 수 있어 어떤 출력/패키지에도 넣지 않는다. 실제 자산과 설정은
Git 추적 대상이 아니다.