8.3 KiB
8.3 KiB
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. 유확당 변수 처리 규칙
유확당 계열 변수는 전 컷 공통으로 아래 순서로 처리한다.
- 해당 컷에 존재하는
유확당*변수를 먼저 모두visible=false로 숨긴다. - 실제 판정 이미지가 필요한 후보에게만
SetValue(...)를 넣는다. - 값이 들어간 변수만 다시
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/<template.Id>.png규칙을 사용한다. - 콤보박스에서 컷을 선택하면 해당 썸네일을 즉시 프리뷰에 표시한다.
- 로딩 우선순위:
- 프로젝트 내부
Assets/Thumbnail - 번들된 앱 내부
Assets/Thumbnail - 기본 앱 아이콘
- 프로젝트 내부
컷리스트페이지에서는 전체 컷 썸네일 보유 현황과 채널별 컷 목록을 함께 확인할 수 있다.썸네일 생성기능은 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.mdINTEGRATION_NOTES_2026-04-15.mdRGB_SPEC_CUT_MAPPING.mdTSCN_VARIABLE_DISCOVERY_ELECT2026_NORMAL.mdLIVE_VALIDATE_1-2위_ani_광역단체장.mdLIVE_VALIDATE_1-2위_ani_광역단체장_labels.mdLIVE_VALIDATE_1-2위_ani_광역단체장_style.mdLIVE_VALIDATE_1-2위_ani_광역단체장_judgement_visibility.md