6.0 KiB
6.0 KiB
2026-04-15 통합 작업 메모
이 문서는 2026-04-15에 시작한 연동 점검 메모를 2026-04-18 기준으로 현행화한 기록이다.
0. 작업 요약
- SBS 선거 API 기준 실연동 범위를
광역단체장(3),기초단체장(4),교육감(11)으로 정리했다. - 선거 종류 변경 시 실제 SBS
선거구코드 기준으로 지역 목록과 요청 코드가 맞물리도록 보정했다. 기초단체장지역 옵션 교체 중 발생하던ArgumentNullException (key)및ObservableCollection during CollectionChanged계열 UI 전환 이슈를 방어 로직으로 정리했다.교육감,기초단체장사전 방송용 데이터 공백은 저장형 사전데이터(JSON)로 보완했다.- 사전데이터는
사전데이터페이지에서 조회/수정/저장 가능하게 만들었다. 사전_역대당선자*계열은 표기 정당과 색상 포맷 정당을 분리해 저장할 수 있게 했다.- 직함 표기는 광역단체장만이 아니라
광역단체장,교육감,기초단체장전 컷으로 확대했다. - 컷 카탈로그는 실제
.tscn이름 기준으로 정리했고, 과거 별칭은 호환용 alias로만 유지한다. - 컷 썸네일은
Assets/Thumbnail에 저장하고, 제어 패널과 컷리스트에서 프리뷰를 표시하도록 정리했다.
1. 선거 종류별 연동 결과
3 광역단체장
- 선거구 목록:
sungerInfo/region?type=선거구&sungerType=3 - 개표 요청:
gaepyo/3/sungergus?ids=<선거구 id> - 사전 투표율 요청:
tupyo/3/sidos?ids=<시도 id> - 결론:
- 개표 연동 정상
- 사전 투표율 연동 정상
4 기초단체장
- 선거구 목록:
sungerInfo/region?type=선거구&sungerType=4 - 개표 요청:
gaepyo/4/sungergus?ids=<선거구 id> - 결론:
- 개표 연동 정상
- SBS API 사전 투표율은 미지원
- 사전 방송용 역사 데이터는 저장형 사전데이터에서 제공
11 교육감
- 선거구 목록:
sungerInfo/region?type=선거구&sungerType=11 - 개표 요청:
gaepyo/11/sungergus?ids=<선거구 id> - 결론:
- 개표 연동 정상
- SBS API 사전 투표율은 미지원
- 사전 방송용 역사 데이터는 저장형 사전데이터에서 제공
2. SBS API 제한 사항
tupyo/4/...계열은 현재기초단체장에 대해400을 반환한다.tupyo/11/...계열은 현재교육감에 대해400을 반환한다.- 위 두 경우는 앱 오류가 아니라 API 제공 범위 밖으로 본다.
- 실제 운영에서는 저장형 사전데이터로 공백을 메운다.
3. 저장형 사전데이터 운영
- 저장 위치:
Tornado3_2026Election/Assets/Data/pre_election_history.json - 2026-04-18 기준 저장 건수:
광역단체장17건교육감17건기초단체장262건
- 페이지 기능:
- 선거 종류/지역 선택
- 역대 투표율 카드
- 역대 당선자 카드
- 엑셀형 편집
- 저장
사전_역대당선자,사전_역대당선자_교육감,사전_역대당선자_기초단체장은ColorParty를 저장할 수 있다.
4. 지역 선택 / 전환 안정화
DistrictName,DistrictCode,ElectionType는 내부적으로 null이 아닌 문자열 상태를 유지한다.- 지역 옵션 교체 중에는
_isUpdatingDistrictOptions플래그로 transient UI 값을 무시한다. - 사전데이터용 지역 콤보박스도 별도
_isUpdatingPreElectionHistoryDistrictOptions플래그로 같은 문제를 피한다. - 선택 변경 뒤에는 debounce 후 자동 재조회한다.
5. 직함 표기 확대
- 현재 직함 표기는
광역단체장,교육감,기초단체장전부에 적용한다. - 적용 대상 변수:
선거구명시도명RegionNameElectionDistrictNameDistrictName
- 예:
서울특별시->서울시장전라남도->전라남도지사부산광역시->부산광역시교육감창원시->창원시장
6. 컷 카탈로그 / 실제 씬 파일
- 현재 카탈로그는 실제 존재하는
.tscn파일명 기준으로 정리했다. - 2026-04-18 기준 canonical 카탈로그:
- Bottom 15컷
- Normal 63컷
- Top 11컷
- 총 89컷
- 기존에 사용되던
_L,_END,_7680계열은 현재 카탈로그에서 제거했다. - 다만 저장된 큐/상태 복원을 위해 legacy format alias는 유지한다.
- 전수 감사 기준 실제 씬 누락은
0건이다.
7. 썸네일
- 저장 위치:
Assets/Thumbnail/<template.Id>.png - 제어 패널의 컷 선택 콤보박스에서 프리뷰 표시
컷리스트페이지에서 전체 현황 확인썸네일 생성기능은 Karisma에 씬을 로드해 320x180 PNG로 저장
8. 변수 매핑 관련 기록
- Karisma 장면 변수 지원 범위 로깅을 유지한다.
- 다음 alias 매핑을 보강했다.
기준시,기준시01,기준시02유권자수,유권자수01투표자수,투표자수01득표수바NN정당원NN정당색NN
- 역사 당선자 컷은 저장형 사전데이터의
ColorParty와 정당 별칭 정규화를 함께 사용한다.
9. 주요 변경 파일
Tornado3_2026Election/Services/SbsElectionApiClient.csTornado3_2026Election/ViewModels/DataViewModel.csTornado3_2026Election/ViewModels/MainViewModel.csTornado3_2026Election/ViewModels/ChannelScheduleViewModel.csTornado3_2026Election/Services/PreElectionHistoryService.csTornado3_2026Election/Services/CutThumbnailAssetCatalog.csTornado3_2026Election/Services/KarismaThumbnailGeneratorService.csTornado3_2026Election/Services/FormatCatalogService.csTornado3_2026Election/Services/KarismaTornado3Adapter.cs
10. 현재 체크 결과
dotnet build .\\Tornado3_2026Election\\Tornado3_2026Election.csproj통과- 기존 경고는 유지
WindowsBase참조 충돌- MSIX 인증서 경고
MockTornado3Adapter.ConnectionChanged미사용 경고
- 컷 카탈로그 감사 결과 실제 씬 누락
0건