135 lines
7.2 KiB
Markdown
135 lines
7.2 KiB
Markdown
# 원본 Cuts/Res 런타임 배치
|
|
|
|
## 기준 원본
|
|
|
|
원본 저장소는 읽기 전용이며 다음 개발 출력만 런타임 자산 기준으로 사용한다.
|
|
|
|
```text
|
|
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로 연결해 실행 파일 옆의 다음 구조를 만든다.
|
|
|
|
```text
|
|
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으로 사용한다.
|
|
|
|
```text
|
|
src\MBN_STOCK_WEBVIEW.LegacyParityApp\bin\SourceOnly\...
|
|
src\MBN_STOCK_WEBVIEW.LegacyParityApp\obj\SourceOnly\...
|
|
```
|
|
|
|
원본 경로가 다른 장비에서 전체 기능을 빌드하려면 다음 속성으로 `bin\Debug` 위치를 지정한다.
|
|
명시한 경로는 자동으로 `Required` 취급된다.
|
|
|
|
```text
|
|
/p:LegacyRuntimeSourceRoot="D:\path\to\MBN_STOCK_N\MBN_STOCK_N\bin\Debug"
|
|
```
|
|
|
|
필수 폴더와 `Cuts\5001.t2s`, 주요 UI INI가 없으면 전체 자산 빌드는 원인을 표시하고 중단한다.
|
|
경로 탐색이나 CI에서 소스 전용 동작을 명시적으로 확인할 때만 다음 조합을 사용할 수 있다.
|
|
이는 전체 기능 또는 배포 승인용 빌드가 아니다.
|
|
|
|
```text
|
|
/p:LegacyRuntimeAssetsMode=Auto
|
|
```
|
|
|
|
Git에는 `Cuts`, DB 자격증명, 벤더 DLL, 라이선스, 인증서 또는 로컬 구성을 추가하지 않는다.
|
|
|
|
## Cuts
|
|
|
|
`Cuts`의 179개 파일과 하위 구조를 출력·게시·MSIX에 그대로 배치한다. 환경 변수, 사용자 설정
|
|
메뉴의 디자인 폴더, playout 로컬 JSON의 `sceneDirectory`가 모두 비어 있고 실행 파일 옆
|
|
`Cuts`가 있으면 그 경로를 자동으로 사용한다. 장면 루트의 우선순위는 환경 변수, 사용자 설정,
|
|
playout 로컬 JSON, 실행 파일 옆 기본 폴더 순이다.
|
|
|
|
현재 원본의 `Cuts\Video`는 비어 있다. 따라서 다음 외부 영상은 이 복사만으로 생기지 않는다.
|
|
|
|
- `s5006`의 `Video\큐브배경.vrv`
|
|
- `s6001`의 국가별 `Video\20201008_<국가>.vrv` 13개
|
|
- 원본 코드가 참조하는 일부 기본/스튜디오 `.vrv` 배경
|
|
|
|
이 파일은 임의 대체물을 만들지 않고 원 제작 자산을 확보할 때까지 해당 장면의 자산 검사에서
|
|
명시적으로 누락 처리한다.
|
|
|
|
## 사용자 설정 메뉴
|
|
|
|
좌측 메뉴 하단의 `설정`에서는 네이티브 폴더 선택 창으로 디자인(`Cuts`) 폴더, 설정(`Res`)
|
|
폴더와 선택 사항인 운영 배경 폴더를 직접 지정할 수 있다. 선택한 고정 로컬 폴더는 필수 파일,
|
|
카탈로그 형식과 reparse 여부를 검증한 뒤 다음 앱 전용 파일에 저장한다.
|
|
|
|
```text
|
|
%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`을 사용한다.
|
|
|
|
```text
|
|
%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 추적 대상이 아니다.
|