# 2026-04-18 현재 구현 상태 정리 이 문서는 2026-04-18 기준으로 Tornado3 2026 Election 프로젝트에 실제 반영된 구현 사항과 운영 기준을 한 번에 확인하기 위한 현행화 문서다. ## 1. 화면 구성 - 메인 네비게이션은 아래 페이지를 제공한다. - `통합 스케줄` - `노멀` - `좌상단` - `하단` - `비디오월` - `사전데이터` - `데이터` - `컷리스트` - `설정` - `로그` - `사전데이터` 페이지는 저장형 역대 데이터 조회/수정/저장 전용 화면이다. - `컷리스트` 페이지는 전체 컷 목록, 채널 필터, 컷 시간, 썸네일 현황을 관리하는 운영 화면이다. ## 2. 데이터 화면 - 데이터 화면에서 원본 JSON 형태로 보여주던 `데이터 시트`는 제거했다. - 현재 데이터 화면에는 아래 두 시트만 남겨두었다. - `개표율 시트` - `후보 시트` - `데이터 - 선거구명` 콤보박스 첫 항목에 `전체보기`를 추가했다. - `전체보기` 선택 시, 현재 수신 가능한 지역 데이터를 작은 카드 형태로 한 번에 볼 수 있도록 바꿨다. - 표시 형식: `지역명 - 개표율` - 목적: 전체 데이터 수신 상태를 빠르게 확인하기 위한 개요 화면 - 데이터 탭에는 `선거구명`, `지역 코드` 외에 `시도명`, `송출 선거구명`, `StatusText`를 함께 표시한다. ## 3. SBS API 실연동 범위 - 현재 실연동 대상 선거 종류는 아래와 같다. - `광역단체장` - `교육감` - `기초단체장` - `광역단체장` - 개표: 지원 - 사전 투표율: 지원 - `교육감` - 개표: 지원 - 사전 투표율: SBS API 미지원 - `기초단체장` - 개표: 지원 - 사전 투표율: SBS API 미지원 - `교육감`, `기초단체장`의 사전 방송 데이터는 저장형 사전 데이터(JSON)로 보완한다. ## 4. 저장형 사전데이터 - 저장형 사전데이터는 `Tornado3_2026Election/Assets/Data/pre_election_history.json`에 보관한다. - 2026-04-18 기준 저장 건수는 아래와 같다. - `광역단체장`: 전국 17개 시도 - `교육감`: 전국 17개 시도 - `기초단체장`: 전국 262개 선거구 - 커버리지 요약: - `광역단체장` 당선자: 1995~2022 - `광역단체장` 투표율: 2002~2022 - `교육감`: 직선제 기준 2010~2022 - `기초단체장`: 공식 API 기준 2002~2022 - `사전데이터` 페이지에서 아래 기능을 제공한다. - 선거 종류별 레코드 선택 - 지역별 역대 투표율 카드 보기 - 지역별 역대 당선자 카드 보기 - 엑셀형 편집 그리드에서 직접 수정 - `사전데이터 저장` 버튼으로 JSON 반영 - `사전_역대당선자`, `사전_역대당선자_교육감`, `사전_역대당선자_기초단체장` 편집 행에는 `ColorParty` 콤보박스가 있다. - 표기 정당명은 그대로 두고 - 송출용 색상 포맷 정당만 별도로 지정할 수 있다. - 예: 표기 `한나라당`, 색상 포맷 `국민의힘` - 사전데이터 편집 화면에서는 개별 항목의 `SourceUrl`을 노출하지 않는다. ## 5. 사전 컷 연동 규칙 - `사전_역대당선자*` 계열은 `사전`과 `개표` 양쪽 단계에서 모두 사용할 수 있다. - `사전_역대투표율*` 계열은 `사전` 단계 전용이다. - 사전 컷 송출 시에는 저장형 사전데이터의 `TurnoutHistory`, `WinnerHistory`를 사용한다. - 역사 정당명은 색상 포맷 선택과 별개로 아래 별칭을 함께 처리한다. - `민주자유당`, `신한국당`, `한나라당`, `새누리당`, `자유한국당` -> `국민의힘` - `민주당`, `새천년민주당`, `열린우리당`, `새정치민주연합` -> `더불어민주당` - `무소속` -> `무기타`, `무소속기타` ## 6. 후보/개표 데이터 처리 규칙 - 후보가 나오는 데이터는 개표 데이터 기준으로 처리한다. - 개표 데이터에는 반드시 `개표율`도 함께 표시되도록 맞췄다. - 개표율 텍스트는 아래 형식으로 송출한다. - 예: `개표 98.7%` - 수동 판정값이 있으면 수동 판정을 우선 적용하고, 없으면 API 판정값을 사용한다. - SBS API 판정 코드는 아래 기준으로 반영한다. - `40`: 유력 - `50`: 확정 - `60`: 개표중 당선 - `80`: 무투표 당선 - `90`: 개표마감 당선 ## 7. 직함 표기 규칙 - `광역단체장`, `교육감`, `기초단체장`은 전 컷 공통으로 지역명 대신 직함 기준 표기를 사용한다. - 적용 대상은 컷 종류를 가리지 않고 executive 계열 전체다. - 예시: - `서울특별시` -> `서울시장` - `전라남도` -> `전라남도지사` - `부산광역시` -> `부산광역시교육감` - `경상남도 창원시` -> `창원시장` - 송출 시 `선거구명`, `시도명`, `RegionName`, `ElectionDistrictName`, `DistrictName` 계열 값에 같은 규칙을 적용한다. ## 8. 유확당 변수 처리 규칙 `유확당` 계열 변수는 전 컷 공통으로 아래 순서로 처리한다. 1. 해당 컷에 존재하는 `유확당*` 변수를 먼저 모두 `visible=false`로 숨긴다. 2. 실제 판정 이미지가 필요한 후보에게만 `SetValue(...)`를 넣는다. 3. 값이 들어간 변수만 다시 `visible=true`로 켠다. 적용 범위: - `1-2위` - `1-3위` - `당선` - `모든후보` - `접전` - `초접전` - `이시각1위` ## 9. RGB / 정당 색상 매핑 - 정당 색상은 RGB txt 기준으로 매핑한다. - RGB txt에 `style > ... > color` 지시가 있으면 이미지 교체보다 `SetStyleColor(...)`를 우선 사용한다. - style color 지시가 없는 항목만 기존 asset 기반 `SetValue(...)` 경로를 사용한다. - `사전_역대당선자*` 계열도 `ColorParty` 또는 정당 별칭을 기준으로 동일한 색상 자산 해석을 사용한다. - 상세 매핑은 `RGB_SPEC_CUT_MAPPING.md`를 기준으로 관리한다. ## 10. 컷 카탈로그 / 실제 디자인 매칭 - 컷 목록은 폴더 스캔이 아니라 `FormatCatalogService`의 하드코딩 카탈로그 기준으로 관리한다. - 2026-04-18 기준 현재 카탈로그는 실제 `.tscn` 파일 기준으로 정리되어 있다. - `Elect2026_Bottom_민방`: 15컷 - `Elect2026_Normal_민방`: 63컷 - `Elect2026_Top_민방`: 11컷 - 총 89컷 - 실제 `.tscn` 파일이 없는 오래된 별칭(`_L`, `_END`, `_7680` 등)은 현재 카탈로그에서 제거했다. - 다만 기존 저장 상태/큐 복원을 위해 예전 `FormatId`는 내부 별칭 맵으로 현재 실제 컷 이름에 자동 연결한다. - 2026-04-18 전수 감사 기준: - 카탈로그 등록 컷 중 실제 씬 누락 `0건` ## 11. 썸네일 운영 - 썸네일 저장 위치는 `Assets/Thumbnail/.png` 규칙을 사용한다. - 콤보박스에서 컷을 선택하면 해당 썸네일을 즉시 프리뷰에 표시한다. - 로딩 우선순위: 1. 프로젝트 내부 `Assets/Thumbnail` 2. 번들된 앱 내부 `Assets/Thumbnail` 3. 기본 앱 아이콘 - `컷리스트` 페이지에서는 전체 컷 썸네일 보유 현황과 채널별 컷 목록을 함께 확인할 수 있다. - `썸네일 생성` 기능은 Karisma에 씬을 로드한 뒤 320x180 PNG를 저장한다. ## 12. 설정 저장 및 복원 - 설정은 변경 즉시 자동 저장한다. - 자동 저장 대상에는 아래 항목들이 포함된다. - API 자동 갱신 ON/OFF - API 갱신 주기 - 데이터 관련 주요 선택 상태 - 채널별 큐 상태 - 컷별 재생 시간 - 방송사 지역 필터 - 저장된 큐에 예전 컷 ID가 들어 있어도 복원 시 현재 canonical 컷으로 자동 정규화한다. ## 13. 검증 상태 - `dotnet build .\Tornado3_2026Election\Tornado3_2026Election.csproj` 통과 - 2026-04-18 컷 감사 결과 `MISSING_SCENES=0` - 현재 남아 있는 빌드 경고는 아래와 같다. - `WindowsBase` 참조 충돌 경고 - MSIX 인증서 경고 - `MockTornado3Adapter.ConnectionChanged` 미사용 경고 ## 14. 참고 문서 - `SYSTEM_SPEC.md` - `INTEGRATION_NOTES_2026-04-15.md` - `RGB_SPEC_CUT_MAPPING.md` - `TSCN_VARIABLE_DISCOVERY_ELECT2026_NORMAL.md` - `LIVE_VALIDATE_1-2위_ani_광역단체장.md` - `LIVE_VALIDATE_1-2위_ani_광역단체장_labels.md` - `LIVE_VALIDATE_1-2위_ani_광역단체장_style.md` - `LIVE_VALIDATE_1-2위_ani_광역단체장_judgement_visibility.md`