Files
MBN_STOCK_WEBVIEW/docs/LEGACY_NEW_PLAYOUT_COMPARISON_20260719.md

9.2 KiB

구 프로그램 ↔ 신규 프로그램 송출 비교 (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
  • 신규 프로그램: 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를 확인했다.