fix: initialize selected runtime for live playout

This commit is contained in:
2026-07-28 20:44:20 +09:00
parent 18d40e892f
commit 818acad646
24 changed files with 906 additions and 391 deletions

View File

@@ -35,15 +35,16 @@ Web\...
소스 전용 앱은 메인 송출 화면 대신 `Cuts``Res` 두 폴더만 받는 네이티브 첫 실행 창을
표시한다. 이 프로세스는 DB를 초기화하지 않고 과거 로컬 송출 프로필, 운영자 송출·배경 경로,
프로세스 환경 override와 Development Live 실행 인수를 사용하지 않으며 안전한 DryRun을
강제한다. 설정이 성공하면 창을 닫고 Visual Studio에서 F5를 한 번 더 눌러 전체 자산
프로세스 환경 override와 Development Live 실행 인수를 사용하지 않으며 송출 엔진 자체를
만들지 않는다. 설정이 성공하면 창을 닫고 Visual Studio에서 F5를 한 번 더 눌러 전체 자산
빌드를 시작한다. 출력과 중간 패키징 파일은 이전 전체 빌드의 자산이나
`MmoneyCoder.ini`를 재사용하지 않도록 다음 별도 경로에 생성된다.
첫 실행 화면은 선택한 두 폴더의 고정 로컬 경로와 `Cuts`/`Res` 이름·공통 부모 확인한다.
폴더 내부 파일을 열거·파싱·복사하지 않고 PowerShell, 빌드, DB, K3D 또는 Live 설정도
실행하지 않는다. DB overlay와 Development Live 준비가 필요한 경우에만
`Initialize-ExistingDevelopmentPc.ps1`을 별도 수동 절차로 사용한다.
첫 실행 화면은 선택한 두 폴더의 고정 로컬 경로와 `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 명령은 실행하지 않는다.
```text
src\MBN_STOCK_WEBVIEW.LegacyParityApp\bin\SourceOnly\...
@@ -87,7 +88,8 @@ Git에는 `Cuts`, DB 자격증명, 벤더 DLL, 라이선스, 인증서 또는
좌측 메뉴 하단의 `설정`에서는 네이티브 폴더 선택 창으로 디자인(`Cuts`) 폴더, 설정(`Res`)
폴더와 선택 사항인 운영 배경 폴더를 직접 지정할 수 있다. 선택한 고정 로컬 경로와 `Res`
폴더 자체만 확인한 뒤 다음 앱 전용 파일에 저장한다. 폴더 내용 전체는 검사하지 않는다.
폴더 자체만 확인한 뒤 다음 앱 전용 파일에 저장한다. 폴더 내용 전체는 검사하지 않지만,
Development Live는 다음 시작에서 선택한 `Res\MmoneyCoder.ini`를 별도로 엄격하게 검증한다.
```text
%LOCALAPPDATA%\MBN_STOCK_WEBVIEW\Config\runtime-folders.local.json
@@ -98,9 +100,9 @@ Git에는 `Cuts`, DB 자격증명, 벤더 DLL, 라이선스, 인증서 또는
저장된다. 절대 경로는 Web 콘텐츠에 전달하지 않는다.
이 화면은 자산 위치와 메뉴 시작 상태만 관리한다.
DB 자격증명의 내용은 표시하거나 직접 편집하지 않는다. Release/default `DryRun`, KTAP 호스트·
포트·채널, Test/Live 게이트, scene allowlist와 벤더 해시는 보호 설정으로 유지되며 폴더를 선택해도
완화되거나 변경되지 않는다.
DB 자격증명의 내용은 표시하거나 직접 편집하지 않는다. Debug/Release Live 라우팅, KTAP
호스트·포트·채널, Test/Live 게이트, scene allowlist와 벤더 해시는 보호 설정으로 유지되며
폴더를 선택해도 완화되거나 변경되지 않는다.
## Res와 DB 설정
@@ -109,22 +111,26 @@ CP949 레거시 형식으로 읽고, 파일의 section/row/order를 기존의
대조한 뒤 UI를 구성한다. INI가 임의의 scene/action을 새로 추가할 수는 없다.
`MmoneyCoder.ini`는 실제 자격증명을 포함하므로 빌드 입력, 출력, 개발 인수용 런타임
묶음과 MSIX Content에 넣지 않는다. 전체 자산 Debug 빌드도 깨끗한 개발 PC와 같은 다음
사용자 전용 로컬 overlay 또는 `Config\database.local.json`을 사용한다.
묶음과 MSIX Content에 넣지 않는다. 저장된 `resourceDirectory`가 있는 Development Live는
그 폴더의 정확한 `MmoneyCoder.ini`를 매 실행 직접 읽는다. 파일이 없거나 안전·형식 검증에
실패해도 다른 DB 설정으로 대체하지 않고 Live 엔진 생성과 자동 연결을 차단한다.
다음 사용자 전용 로컬 overlay와 `Config\database.local.json`은 저장된
`resourceDirectory`가 없는 기존 설치에서만 호환 fallback으로 사용한다.
```text
%LOCALAPPDATA%\MBN_STOCK_WEBVIEW\Res\MmoneyCoder.ini
```
이 규칙은 endpoint가 노출되어도 무방한 테스트 개발 서버인 경우에도 같다. 첫 실행 폴더
저장은 원본 `MmoneyCoder.ini`를 읽거나 복사하지 않는다. 수동 Development Live 초기화에서
필요할 때만 위 사용자 전용 경로에 복사하고 현재 Windows 사용자 전용 ACL로 보호한다.
DB 자격증명은 Git, Debug/Release 출력, 게시, runtime bundle과 MSIX에 포함하지 않는다.
이 규칙은 endpoint가 노출되어도 무방한 테스트 개발 서버인 경우에도 같다. 첫 실행 설정은
원본 `MmoneyCoder.ini`의 형식만 확인하고 복사하지 않는다. DB 자격증명은 Git,
Debug/Release 출력, 게시, runtime bundle과 MSIX에 포함하지 않는다.
사용자 설정 메뉴에서 별도 `Res` 폴더를 선택하면 앱은 경로만 저장한다. 일반 Debug/DryRun은
다음 시작부터 그 폴더의 DB 설정을 사용할 수 있지만 형식 검사는 실제 로드 시 수행한다. 파일 내용과
자격증명은 Web 화면에 노출하지 않으며 화면에서 직접 편집할 수도 없다. 단, one-shot Gate A
검증 실행에서는 이 사용자 선택을 무시하고 검증 계획에 고정된 `database.local.json`만 사용한다.
사용자 설정 메뉴에서 별도 `Res` 폴더를 선택하면 앱은 경로만 저장하고 다음 시작부터 그
폴더의 DB 설정을 사용한다. 파일 내용과 자격증명은 Web 화면에 노출하지 않으며 화면에서 직접
편집할 수도 없다. 검증된 Development Live는 DB 환경 override를 무시한다. 단, one-shot
Gate A 검증 실행에서는 이 사용자 선택을 무시하고 검증 계획에 고정된
`database.local.json`만 사용한다.
`MmoneyCoder - 복사본.ini`, `.bak`, `.zip`, `afiedt.buf.txt`는 런타임 소비자가 없고 과거
자격증명 또는 SQL 흔적을 담을 수 있어 어떤 출력/패키지에도 넣지 않는다. 실제 자산과 설정은