6.4 KiB
6.4 KiB
2026-04-17 구현 현황 정리
이 문서는 2026-04-17 현재 기준으로 Tornado3 2026 Election 프로젝트의 주요 구현 사항을 정리한 현행화 문서이다. 기존 메모와 검증 산출물이 여러 파일에 흩어져 있으므로, 실제 운영에 필요한 상태만 이 문서에서 한 번에 확인할 수 있게 정리했다.
1. 데이터 화면 현행 상태
- 데이터 화면에서 원본 JSON 전체를 보여주는 "데이터 시트"는 제거했다.
- 현재 데이터 화면은 아래 두 시트만 유지한다.
- 개표율 시트
- 후보 시트
- 선거구명 콤보박스 첫 항목에
전체보기를 추가했다. 전체보기선택 시, 개표 단계에서 지역별 개표율을 작은 카드 목록으로 표시한다.- 카드 형식:
지역명 - 개표율 - 지원 위치: 개표 단계에서 지원되는 선거 종류
- 카드 형식:
- 광역단체장 데이터는 지역명 대신 실제 직책명이 보이도록 보정했다.
- 예:
부산광역시->부산시장 - 예:
경기도->경기도지사
- 예:
2. 개표 데이터 표시 규칙
- 후보 데이터는 개표 데이터 기준으로 처리한다.
- 개표율 표시는 숫자만 넣지 않고 라벨을 포함한 형식으로 통일했다.
- 형식:
개표 99.9%
- 형식:
- 광역단체장 컷의
시도명계열 변수는 광역 지명 대신 직책명으로 송출한다.- 예:
시도명01 = 부산시장
- 예:
- 후보 슬롯 수는 씬 변수 카탈로그 기준으로 제한한다.
- 2인 컷에는
후보명03,유확당03같은 없는 변수를 보내지 않는다. - 3인 컷은 3번 슬롯까지 반영한다.
- 2인 컷에는
3. 후보 판정 코드 반영 상태
SBS API 판정 코드는 아래와 같이 반영한다.
40: 유력50: 확정60: 개표중 당선80: 무투표 당선90: 개표마감 당선
추가 메모:
80무투표 당선은 실제 발생 가능한 값으로 간주하고 별도 예외 없이 반영한다.- 수동 판정이 있으면 수동 판정을 우선하고, 없으면 API 판정값을 사용한다.
4. 유확당 변수 처리 규칙
유확당 계열 변수는 현재 아래 규칙으로 공통 처리한다.
- 해당 씬에 존재하는
유확당*변수를 먼저 전부visible=false로 숨긴다. - 실제 판정 이미지 경로가 있는 슬롯만
SetValue(...)로 값을 적용한다. - 값이 들어간 슬롯만 다시
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. 씬 변수 카탈로그 현행화
씬 변수 카탈로그는 현재 최신 스캔 결과를 우선 사용한다.
우선순위:
TSCN_VARIABLE_DISCOVERY_ELECT2026_NORMAL.mdTSCN_VARIABLE_DISCOVERY_E_DRIVE.mdTSCN_VARIABLE_DISCOVERY.md- 동일 패턴의 최신
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 처리 확인