# 2026-04-17 구현 현황 정리 이 문서는 2026-04-17 현재 기준으로 Tornado3 2026 Election 프로젝트의 주요 구현 사항을 정리한 현행화 문서이다. 기존 메모와 검증 산출물이 여러 파일에 흩어져 있으므로, 실제 운영에 필요한 상태만 이 문서에서 한 번에 확인할 수 있게 정리했다. ## 1. 데이터 화면 현행 상태 - 데이터 화면에서 원본 JSON 전체를 보여주는 "데이터 시트"는 제거했다. - 현재 데이터 화면은 아래 두 시트만 유지한다. - 개표율 시트 - 후보 시트 - 선거구명 콤보박스 첫 항목에 `전체보기`를 추가했다. - `전체보기` 선택 시, 개표 단계에서 지역별 개표율을 작은 카드 목록으로 표시한다. - 카드 형식: `지역명 - 개표율` - 지원 위치: 개표 단계에서 지원되는 선거 종류 - 광역단체장 데이터는 지역명 대신 실제 직책명이 보이도록 보정했다. - 예: `부산광역시` -> `부산시장` - 예: `경기도` -> `경기도지사` ## 2. 개표 데이터 표시 규칙 - 후보 데이터는 개표 데이터 기준으로 처리한다. - 개표율 표시는 숫자만 넣지 않고 라벨을 포함한 형식으로 통일했다. - 형식: `개표 99.9%` - 광역단체장 컷의 `시도명` 계열 변수는 광역 지명 대신 직책명으로 송출한다. - 예: `시도명01 = 부산시장` - 후보 슬롯 수는 씬 변수 카탈로그 기준으로 제한한다. - 2인 컷에는 `후보명03`, `유확당03` 같은 없는 변수를 보내지 않는다. - 3인 컷은 3번 슬롯까지 반영한다. ## 3. 후보 판정 코드 반영 상태 SBS API 판정 코드는 아래와 같이 반영한다. - `40`: 유력 - `50`: 확정 - `60`: 개표중 당선 - `80`: 무투표 당선 - `90`: 개표마감 당선 추가 메모: - `80` 무투표 당선은 실제 발생 가능한 값으로 간주하고 별도 예외 없이 반영한다. - 수동 판정이 있으면 수동 판정을 우선하고, 없으면 API 판정값을 사용한다. ## 4. 유확당 변수 처리 규칙 `유확당` 계열 변수는 현재 아래 규칙으로 공통 처리한다. 1. 해당 씬에 존재하는 `유확당*` 변수를 먼저 전부 `visible=false`로 숨긴다. 2. 실제 판정 이미지 경로가 있는 슬롯만 `SetValue(...)`로 값을 적용한다. 3. 값이 들어간 슬롯만 다시 `visible=true`로 켠다. 적용 범위: - 1인 / 2인 / 3인 후보 컷 공통 - `당선`, `이시각1위`, `접전`, `초접전`, `모든후보`, `1-2위`, `1-3위` 계열 포함 검증 결과: - 최신 씬 스캔 기준 `유확당` 변수를 사용하는 컷은 총 69개다. - 전체 스캔 리포트: `TSCN_VARIABLE_DISCOVERY_ELECT2026_NORMAL.md` - 실동작 검증 리포트: `LIVE_VALIDATE_1-2위_ani_광역단체장_judgement_visibility.md` ## 5. 정당 색상 / RGB 매핑 상태 정당 색상은 `E:\김의연\지역민방\T3_Cut\Elect2026_Normal_민방\RGB\` 폴더 기준으로 매핑한다. 현재 규칙: - RGB txt에 `style > ... > color`가 지정된 항목은 이미지 교체보다 `SetStyleColor(...)`를 우선 적용한다. - 대표 적용 섹션: - 정당판 - 정당바 - 득표율 - 정당명 - 기타 style color 지정 섹션 - RGB txt에 style color 지정이 없는 항목만 기존 asset `SetValue(...)` 경로를 사용한다. 특히 `1-2위_ani_광역단체장.txt` 기준으로 아래가 반영되도록 디버깅했다. - `정당판`: `style > face > color` - `득표율`: `style > edge > color` - `정당바`: `style > face > color` 관련 문서: - 매핑 문서: `RGB_SPEC_CUT_MAPPING.md` - 스타일 검증 리포트: `LIVE_VALIDATE_1-2위_ani_광역단체장_style.md` ## 6. 설정 저장 / 자동 갱신 현행 상태 - API 자동 갱신 기본값은 `60초`다. - 설정 변경 시 별도 저장 버튼 없이 자동 저장되도록 구성했다. - 자동 저장 대상에는 아래 값이 포함된다. - API 자동 갱신 ON/OFF - 갱신 주기 - 데이터 관련 주요 선택 상태 - 앱 상태 복원에 필요한 주요 설정 관련 구현 포인트: - 기본값: `Tornado3_2026Election/Persistence/AppState.cs` - 자동 저장 루프: `Tornado3_2026Election/ViewModels/MainViewModel.cs` ## 7. 씬 변수 카탈로그 현행화 씬 변수 카탈로그는 현재 최신 스캔 결과를 우선 사용한다. 우선순위: 1. `TSCN_VARIABLE_DISCOVERY_ELECT2026_NORMAL.md` 2. `TSCN_VARIABLE_DISCOVERY_E_DRIVE.md` 3. `TSCN_VARIABLE_DISCOVERY.md` 4. 동일 패턴의 최신 `TSCN_VARIABLE_DISCOVERY*.md` 추가 조치: - 위 카탈로그 파일들은 앱 출력 폴더와 `AppX` 폴더에도 함께 복사되도록 했다. - 실행본도 최신 씬 변수 정보를 그대로 사용한다. 최신 전체 스캔 결과: - 전체 씬 수: 114 - `유확당` 사용 컷 수: 69 - 출력 리포트: `TSCN_VARIABLE_DISCOVERY_ELECT2026_NORMAL.md` ## 8. 주요 검증 산출물 - `LIVE_VALIDATE_1-2위_ani_광역단체장.md` - 기본 변수 송출 검증 - `LIVE_VALIDATE_1-2위_ani_광역단체장_labels.md` - `개표 99.9%` 형식, 광역장 직책명 검증 - `LIVE_VALIDATE_1-2위_ani_광역단체장_style.md` - style color 적용 검증 - `LIVE_VALIDATE_1-2위_ani_광역단체장_judgement_visibility.md` - `유확당` visible 처리 검증 - `TSCN_VARIABLE_DISCOVERY_ELECT2026_NORMAL.md` - Elect2026_Normal_민방 전체 씬 변수 스캔 결과 ## 9. 현재 운영 기준 요약 - 데이터 화면은 `개표율 시트 + 후보 시트 + 전체보기 카드` 기준으로 본다. - 광역단체장 표기는 지역명이 아니라 직책명 기준으로 본다. - 개표율 문구는 항상 `개표 x.x%` 형식으로 보낸다. - 정당 색상은 RGB txt 기준이며, style color 지정이 있으면 이미지보다 style color를 우선한다. - `유확당`은 전 컷 공통으로 먼저 숨기고, 판정이 있는 슬롯만 다시 보이게 한다. - 설정은 변경 즉시 자동 저장되며, API 기본 갱신 주기는 60초다. ## 10. 후속 확인 권장 사항 - 실제 송출 중인 주요 컷에서 `유확당` 표식이 없는 슬롯이 숨겨지는지 최종 육안 확인 - 2인 / 3인 컷 각각에서 존재하지 않는 슬롯 변수 송출이 없는지 로그 확인 - 광역단체장 컷에서 `시도명`이 지역명이 아니라 직책명으로 나가는지 최종 확인 - 무투표 당선(`80`) 케이스 수신 시 `유확당` asset과 visible 처리 확인