7.2 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다.
이 프로젝트는 원본 경로가 존재하는 전체 빌드에서 파일을 저장소 안으로 복제하지 않고 외부
Content로 연결해 실행 파일 옆의 다음 구조를 만든다.
MBN_STOCK_WEBVIEW.LegacyParityApp.exe
Cuts\...
Res\...
Web\...
소스 전용 빌드와 전체 자산 빌드
기본 LegacyRuntimeAssetsMode는 Auto다.
- 초기화기가 모든 설정과 명시 경로 전체 빌드를 검증한 뒤 마지막 성공 표식으로 만든 Git 제외
Directory.Build.local.props가 있으면, 그 검증된 LocalAppData runtime으로 모든 필수 자산을 확인하고 전체 자산 빌드를 만든다. - 새 Git clone의 Debug/F5는 주변의 과거 원본 경로를 자동 선택하지 않고 소스 전용 첫 실행 설정 앱을 만든다.
- 원본 경로를 명시하거나 Release MSIX를 만들면 기본값이
Required로 바뀌어 누락 자산을 다시 오류로 차단한다.
소스 전용 앱은 메인 송출 화면 대신 Cuts와 Res 두 폴더만 받는 네이티브 첫 실행 창을
표시한다. 이 프로세스는 DB를 초기화하지 않고 과거 로컬 송출 프로필, 운영자 송출·배경 경로,
프로세스 환경 override와 Development Live 실행 인수를 사용하지 않으며 안전한 DryRun을
강제한다. 설정이 성공하면 창을 닫고 Visual Studio에서 F5를 한 번 더 눌러 전체 자산
Development Live 빌드를 시작한다. 출력과 중간 패키징 파일은 이전 전체 빌드의 자산이나
MmoneyCoder.ini를 재사용하지 않도록 다음 별도 경로에 생성된다.
첫 실행 화면에서 개별 INI, DB endpoint 또는 Tornado2 port를 따로 입력하지 않는다. 선택한
Res에서 MmoneyCoder.ini, 종목.ini, 업종_코스피.ini, 업종_코스닥.ini,
해외.ini, 환율.ini, 지수.ini, 종목비교.ini 등 활성 INI 8개를 모두 검증하고,
Tornado2 endpoint는 지정 개발 환경의 127.0.0.1:30001로 고정한다. 화면을 사용할 수 없는
장애 대응 또는 기존 로컬 설정의 명시적 교체에만 Initialize-ExistingDevelopmentPc.ps1을
수동 fallback으로 사용한다.
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\5001.t2s, 주요 UI INI가 없으면 전체 자산 빌드는 원인을 표시하고 중단한다.
경로 탐색이나 CI에서 소스 전용 동작을 명시적으로 확인할 때만 다음 조합을 사용할 수 있다.
이는 전체 기능 또는 배포 승인용 빌드가 아니다.
/p:LegacyRuntimeAssetsMode=Auto
Git에는 Cuts, DB 자격증명, 벤더 DLL, 라이선스, 인증서 또는 로컬 구성을 추가하지 않는다.
Cuts
Cuts의 179개 파일과 하위 구조를 출력·게시·MSIX에 그대로 배치한다. 환경 변수, 사용자 설정
메뉴의 디자인 폴더, playout 로컬 JSON의 sceneDirectory가 모두 비어 있고 실행 파일 옆
Cuts가 있으면 그 경로를 자동으로 사용한다. 장면 루트의 우선순위는 환경 변수, 사용자 설정,
playout 로컬 JSON, 실행 파일 옆 기본 폴더 순이다.
현재 원본의 Cuts\Video는 비어 있다. 따라서 다음 외부 영상은 이 복사만으로 생기지 않는다.
s5006의Video\큐브배경.vrvs6001의 국가별Video\20201008_<국가>.vrv13개- 원본 코드가 참조하는 일부 기본/스튜디오
.vrv배경
이 파일은 임의 대체물을 만들지 않고 원 제작 자산을 확보할 때까지 해당 장면의 자산 검사에서 명시적으로 누락 처리한다.
사용자 설정 메뉴
좌측 메뉴 하단의 설정에서는 네이티브 폴더 선택 창으로 디자인(Cuts) 폴더, 설정(Res)
폴더와 선택 사항인 운영 배경 폴더를 직접 지정할 수 있다. 선택한 고정 로컬 폴더는 필수 파일,
카탈로그 형식과 reparse 여부를 검증한 뒤 다음 앱 전용 파일에 저장한다.
%LOCALAPPDATA%\MBN_STOCK_WEBVIEW\Config\runtime-folders.local.json
폴더 변경과 기본값 복원은 자동 저장되지만 런타임 자산과 카탈로그에는 앱을 다시 시작한 뒤
적용된다. 같은 화면의 왼쪽 메뉴 펼쳐서 시작은 즉시 화면에 반영되고 다음 시작 상태도 위 파일에
저장된다. 절대 경로는 Web 콘텐츠에 전달하지 않는다.
이 화면은 자산 위치, 메뉴 시작 상태와 선택한 Res 안의 검증된 DB 프로필 위치만 관리한다.
DB 자격증명의 내용은 표시하거나 직접 편집하지 않는다. Release/default DryRun, 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에 넣지 않는다. 전체 자산 Debug 빌드도 깨끗한 개발 PC와 같은 다음
사용자 전용 로컬 overlay 또는 Config\database.local.json을 사용한다.
%LOCALAPPDATA%\MBN_STOCK_WEBVIEW\Res\MmoneyCoder.ini
이 규칙은 endpoint가 노출되어도 무방한 테스트 개발 서버인 경우에도 같다. 첫 실행 설정은
원본 MmoneyCoder.ini를 위 사용자 전용 경로에만 복사하고 현재 Windows 사용자 전용 ACL로
보호한다. DB 자격증명은 Git, Debug/Release 출력, 게시, runtime bundle과 MSIX에 포함하지
않는다.
사용자 설정 메뉴에서 별도 Res 폴더를 선택했고 그 안에 MmoneyCoder.ini가 있으면 앱은 저장
전에 형식을 네이티브에서 검증하고 다음 시작부터 그 DB 설정을 우선 사용한다. 파일 내용과
자격증명은 Web 화면에 노출하지 않으며 화면에서 직접 편집할 수도 없다. 단, one-shot Gate A
검증 실행에서는 이 사용자 선택을 무시하고 검증 계획에 고정된 database.local.json만 사용한다.
MmoneyCoder - 복사본.ini, .bak, .zip, afiedt.buf.txt는 런타임 소비자가 없고 과거
자격증명 또는 SQL 흔적을 담을 수 있어 어떤 출력/패키지에도 넣지 않는다. 실제 자산과 설정은
Git 추적 대상이 아니다.