feat: consolidate legacy parity migration baseline
This commit is contained in:
125
docs/LEGACY_NEW_PLAYOUT_COMPARISON_20260719.md
Normal file
125
docs/LEGACY_NEW_PLAYOUT_COMPARISON_20260719.md
Normal file
@@ -0,0 +1,125 @@
|
||||
# 구 프로그램 ↔ 신규 프로그램 송출 비교 (2026-07-19)
|
||||
|
||||
## 결론
|
||||
|
||||
외부 제작 자산에 의존하지 않는 30개 운영 route를 구 프로그램과 신규 프로그램에서 같은
|
||||
저장 편성표 순서로 각각 실행했다. 두 프로그램 모두 실제 Windows 포인터 입력으로 행을 선택하고
|
||||
TAKE IN/TAKE OUT을 수행했으며, Tornado2 Network Monitoring과 PGM 화면을 보존했다.
|
||||
|
||||
- 신규 프로그램: 30/30이 정확한 scene code로 PROGRAM에 진입하고 화면이 표시됐다.
|
||||
- 신규 명령: LOAD 30/30, PREPARE 56/56, PLAY 56/56, UNLOAD 30/30,
|
||||
`FAILURE=0`, `ERROR=0`, `OutcomeUnknown=false`.
|
||||
- 신규 UI 상태 증거: 120개(행 활성화·PROGRAM 조기 확인·갱신 완료·IDLE 복귀 각 30개).
|
||||
- 신규 PGM 화면 증거: 30개. 최저 밝기 `50160`도 실제 농산물 2열판이며 검은 화면이 아니다.
|
||||
최고 밝기 `5032`는 흰 배경이 넓은 지수/선물 2열판의 정상 화면이다.
|
||||
- 구 프로그램: 동일 30개 입력을 모두 시도했다. 현재 데이터와 저장 identity에서 PGM 오류 없이
|
||||
PROGRAM에 진입한 route는 11개, PGM 오류를 동반한 route는 4개, 데이터·매핑 단계에서 차단된
|
||||
route는 15개였다. 오류 없는 11개도 mutation을 대조하니 8개가 동등했고, 2개는 구 프로그램의
|
||||
기간 제목 복원 오류, 1개는 구 프로그램의 두 필드 갱신 누락이었다.
|
||||
|
||||
따라서 30개를 모두 **입력·결과 기준으로 비교**할 수는 있었지만, 30개 모두를 픽셀 대 픽셀로
|
||||
비교할 수 있었던 것은 아니다. 구 프로그램이 이번 환경에서 깨끗한 PGM 화면을 만들지 못한
|
||||
19개는 신규 화면만 실제 확인했으며, 이는 신규 프로그램의 실패가 아니라 구 프로그램 측의
|
||||
현행 데이터 복원·PGM 오류 경계다.
|
||||
|
||||
## 장면별 결과
|
||||
|
||||
아래의 구 프로그램 결과는 이번 동일 저장 편성표 재생 회차에서 관찰한 결과다. 구 프로그램의
|
||||
모든 과거 운영 가능성을 부정하는 판정으로 확대하지 않는다.
|
||||
|
||||
| 순번 | code | 장면 | 구 프로그램 관찰 | 신규 프로그램 |
|
||||
|---:|---:|---|---|---|
|
||||
| 1 | 5016 | 미국 지수 3열판 | 데이터 단계 차단 | PASS, 실제 PGM |
|
||||
| 2 | 50160 | 농산물 2열판 | 데이터 단계 차단 | PASS, 실제 PGM |
|
||||
| 3 | 5078 | 다우 미국업종 | 정상 PROGRAM | PASS, 실제 PGM |
|
||||
| 4 | 8067 | 글로벌 증시 지도 | 정상 PROGRAM | PASS, 실제 PGM |
|
||||
| 5 | 5086 | 원달러 5일 수익률 | PROGRAM, 저장 행 제목/기간 복원 차이 | PASS, canonical 제목·기간 PGM |
|
||||
| 6 | 50860 | 원달러 5일 라인 | PROGRAM, 저장 행 제목/기간 복원 차이 | PASS, canonical 제목·기간 PGM |
|
||||
| 7 | 5023 | 코스피 매매동향 표 | 저장 매핑 차단 | PASS, 실제 PGM |
|
||||
| 8 | 5024 | 코스피 매매동향 막대 | 저장 매핑 차단 | PASS, 실제 PGM |
|
||||
| 9 | 5077 | 시가총액 6종목 | 데이터 단계 차단 | PASS, 실제 PGM |
|
||||
| 10 | 5082 | 주체별 매매동향 표 | 정상 PROGRAM | PASS, 실제 PGM |
|
||||
| 11 | 5083 | 개인 매매동향 라인 | 데이터 단계 차단 | PASS, 실제 PGM |
|
||||
| 12 | 5084 | 코스피 매매동향 라인 | 50860으로 잘못 매핑되어 실패 | PASS, 정확한 5084 PGM |
|
||||
| 13 | 5085 | 프로그램 매매 표 | PROGRAM, 베이시스·선물 mutation 누락 | PASS, 6개 항목 fresh PGM |
|
||||
| 14 | 5088 | 시가총액 12종목 | 데이터 단계 차단 | PASS, 실제 PGM |
|
||||
| 15 | 6067 | 기관 순매수 표 | 정상 PROGRAM | PASS, 실제 PGM |
|
||||
| 16 | 8035 | 일봉 캔들 | 데이터 단계 차단 | PASS, 실제 PGM |
|
||||
| 17 | 5011 | 삼성전자 1열판 상세 | PROGRAM, PGM 오류 포함 | PASS, 실제 PGM |
|
||||
| 18 | 8003 | 삼성전자 호가창 | PROGRAM, PGM 오류 포함 | PASS, 실제 PGM |
|
||||
| 19 | 5037 | 삼성전자 거래원 | PROGRAM, PGM 오류 포함 | PASS, 실제 PGM |
|
||||
| 20 | 8001 | 코스피 업종 네모그래프 | PROGRAM, PGM 오류 포함 | PASS, 실제 PGM |
|
||||
| 21 | 5026 | 종목 비교 캔들 | 데이터 단계 차단 | PASS, 실제 PGM |
|
||||
| 22 | 5087 | 종목 비교 라인 | 데이터 단계 차단 | PASS, 실제 PGM |
|
||||
| 23 | 5029 | 종목 비교 5일 수익률 | 저장 매핑 차단 | PASS, 실제 PGM |
|
||||
| 24 | 8032 | 코스닥 ↔ 코스피 지수 | 데이터 단계 차단 | PASS, 실제 PGM |
|
||||
| 25 | 5032 | 선물 ↔ 코스피 지수 | 데이터 단계 차단 | PASS, 실제 PGM |
|
||||
| 26 | 5076 | 주요매출 구성 | 정상 PROGRAM | PASS, 실제 PGM |
|
||||
| 27 | 5079 | 성장성 지표 | 정상 PROGRAM | PASS, 실제 PGM |
|
||||
| 28 | 5080 | 매출액 | 정상 PROGRAM | PASS, 실제 PGM |
|
||||
| 29 | 5081 | 영업이익 | 정상 PROGRAM | PASS, 실제 PGM |
|
||||
| 30 | 5025 | 개인 순매도 수동 목록 | 데이터 단계 차단 | PASS, 실제 PGM |
|
||||
|
||||
## 구 프로그램이 실제 송출한 11개의 mutation 대조
|
||||
|
||||
PGM 화면은 같은 scene이라도 캡처한 애니메이션 프레임에 따라 일부 행·막대가 덜 보일 수 있다.
|
||||
따라서 화면 육안 비교와 함께 각 route의 첫 transaction mutation을 직접 대조했다.
|
||||
|
||||
- 순서와 값까지 동일: `5078`, `5082`, `6067`, `5076`, `5080`, `5081` (6개)
|
||||
- 값·오브젝트 집합은 동일하고 설정 순서만 다름: `8067`, `5079` (2개)
|
||||
- `5086`: 날짜·가격·기준가·수익률·그래프 23개 mutation은 같았다. 구 프로그램은 저장 행의
|
||||
`원달러_5일`을 그대로 제목에 넣어 `원달러_5일 수익률`, 빈 subtitle을 보냈다. 신규는 원본
|
||||
scene의 닫힌 5일 동작에 맞게 `원달러 수익률`, `1주일`을 보냈다.
|
||||
- `50860`: 시세·등락·날짜·그래프 25개 mutation은 같았다. 구 프로그램은
|
||||
`원/달러_5일`, 빈 subtitle을 보냈고 신규는 `원/달러`, `1주일`을 보냈다.
|
||||
- `5085`: 구 프로그램은 4개 데이터 항목에 해당하는 12개 mutation만 보냈고 `베이시스`와
|
||||
`선물`을 갱신하지 않았다. 그 결과 PGM에는 이전 scene 잔존값처럼 `57,800`이 두 칸에 보였다.
|
||||
신규는 `순매수`, `차익`, `비차익`, `베이시스`, `코스피200`, `선물` 6개 항목의 18개
|
||||
mutation을 보내 fresh DB 값으로 표시했다.
|
||||
|
||||
즉 신규 프로그램은 구 프로그램의 이번 실행 결과를 무조건 복제하지 않는다. 구 프로그램의
|
||||
저장 행 인자 왜곡이나 갱신 누락은 원본 scene 계약과 현재 DB identity를 기준으로 교정한다.
|
||||
|
||||
## 이번 회차에서 교정한 내용
|
||||
|
||||
저장 편성표에는 화면에 보이는 제목·subtype만 남고 신규 내부 selection identity가 없는 행이
|
||||
있었다. 신규 프로그램은 추측하지 않고 다음처럼 닫힌 규칙으로 복원하도록 교정했다.
|
||||
|
||||
- `5011`: 상세 분기(액면가 등)를 canonical detail selection으로 정규화
|
||||
- `8001`: 업종 네모그래프를 canonical industry selection으로 정규화
|
||||
- `5026`, `5087`, `5029`, `8032`, `5032`: 화면 제목과 저장된 정확한 DataCode identity로
|
||||
비교 대상·action을 복원
|
||||
- `5076`, `5079`, `5080`, `5081`: 수동 재무 화면을 canonical internal selection으로 정규화
|
||||
|
||||
집중 회귀 53/53과 Debug x64 빌드가 통과했고, 교정 대상 11개를 먼저 재검증한 뒤 30개 전체를
|
||||
다시 사용자 입력으로 실행했다. 최종 전체 회귀는 Debug/Release x64 각각 2,813/2,813,
|
||||
Web Node 424/424이며 실패·skip은 0이다.
|
||||
|
||||
## 화면 판독과 제한
|
||||
|
||||
- 초기 자동 캡처 일부가 장면 자동 갱신 후 너무 늦게 찍혀 검은 PGM처럼 보였다. 이는 송출
|
||||
실패가 아니었다. PROGRAM 진입 직후 850 ms에 PGM을 캡처하도록 보정한 뒤 30개를 다시 실행했다.
|
||||
- `5078`의 구/신규 mutation 값(제목, 분류, 막대 값)은 일치했다. 신규 화면도 같은 다우 업종
|
||||
그래픽을 표시했다.
|
||||
- 공통 배경 자산을 사용하지 않는 현재 로컬 설정에서는 그래픽 주변이 검게 보일 수 있다.
|
||||
사용자가 외부 자산 없이 진행하도록 한 범위이며 scene 데이터 실패로 판정하지 않는다.
|
||||
- `5025`는 현재 trusted 수동 파일에 두 종목만 있으므로 두 행만 채워지고 나머지는 빈 행이다.
|
||||
화면 형식과 송출 계약은 정상이다.
|
||||
- 외부 자산이 실제로 없는 `s5006`, `s6001`은 이번 30개에 포함하지 않았고 계속 fail closed한다.
|
||||
|
||||
## 증거와 정리
|
||||
|
||||
- 구 프로그램: [`legacy-pgm`](../artifacts/side-by-side-playout-20260719/legacy-pgm)
|
||||
- 신규 프로그램: [`new-pgm`](../artifacts/side-by-side-playout-20260719/new-pgm)
|
||||
- 신규 실제 화면: `new-pgm/pgm-visual-new-v3-<순번>-<code>-result.png`
|
||||
- 신규 사용자 입력 상태: `new-pgm/ui-new-v3-<순번>-<code>-*.json`
|
||||
|
||||
장시간 실행으로 Network Monitoring의 시작 anchor가 화면 버퍼에서 밀려났으므로 최종 단일
|
||||
delta 파일을 30개 전체 집계 근거로 사용하지 않는다. 대신 시작점이 보존된 장면별 result/takeout
|
||||
state JSON 60개를 합산했고, 위의 30/56/56/30 성공 수를 얻었다. 현재 남아 있는 Network
|
||||
Monitoring 구간도 LOAD 16/16, PREPARE 29/29, PLAY 29/29, UNLOAD 17/17,
|
||||
`FAILURE=0`, `ERROR=0`으로 일치한다.
|
||||
|
||||
검증용 편성표 `000_CODEX_AB_20260719_01`은 실제 UI에서 삭제했다. 삭제는
|
||||
`committedFresh`, 정의 24→23이었고, 후속 read-only DB 감사에서 정의 23개·행 2,213개와
|
||||
`REAL_DB_SMOKE: PASS`를 확인했다.
|
||||
Reference in New Issue
Block a user