4.3 KiB
4.3 KiB
Work Log - 2026-04-19
Summary
이번 작업에서는 송출 큐 동작, 경력_ 컷 계열 표출 규칙, 공약 직접 입력 기능, 사전 데이터 visibility 처리, 그리고 광역단체장 컷의 정당바 색상 적용 방식을 중심으로 정리했다.
Recorded Changes
1. 다음 목록 즉시 송출
- 현재 송출 중인 상태에서도 대기열의 다음 목록을 바로 다음 on-air 순서로 넘길 수 있도록
다음 목록 즉시 송출동작을 추가했다. - 운영자가
다음컷 즉시 송출과 구분해서 사용할 수 있도록 큐 기반 즉시 송출 흐름을 분리했다.
2. 경력_ 컷 공약 직접 입력
- 공약 데이터는 외부 API 수신값이 아니라 고객사가 직접 입력하는 방식으로 정리했다.
- 지역구/후보 단위로 공약을 입력할 수 있도록 편집 모델과 저장 로직을 추가했다.
- 공약 텍스트 유무에 따라
공약그룹01,공약그룹02,공약그룹03의visible값을 함께 제어하도록 반영했다.
관련 구현 파일:
Tornado3_2026Election/Domain/CareerPromiseModels.csTornado3_2026Election/Services/CareerPromiseService.csTornado3_2026Election/ViewModels/CareerPromiseEditRowViewModel.csTornado3_2026Election/ViewModels/DataViewModel.csTornado3_2026Election/ViewModels/MainViewModel.csTornado3_2026Election/MainWindow.xaml
3. 경력_ 컷 후보 표출 규칙
경력_컷은 지역구당 1명만 나가는 방식이 아니라, 해당 지역구의 모든 후보가 순차적으로 표출되도록 수정했다.- 후보 정렬 기준은 득표율 순이 아니라 기호 순으로 고정했다.
기호텍스트NN은 고정 문자열기호를 유지하고,기호NN에는01 -> 1,02 -> 2처럼 정규화된 기호 번호를 사용하도록 정리했다.
관련 구현 파일:
Tornado3_2026Election/Domain/FormatCutDefinition.csTornado3_2026Election/Services/ChannelScheduleEngine.csTornado3_2026Election/Models/CandidateEntry.csTornado3_2026Election/Models/CandidateState.csTornado3_2026Election/Services/SbsElectionApiClient.csTornado3_2026Election/Services/KarismaTornado3Adapter.cs
4. 사전 데이터 visibility 처리
사전_역대당선자계열은 회차 데이터가 비어 있으면 해당 회차 그룹의visible을false로 내리도록 반영했다.- 예: 1대 데이터가 없으면
그룹01 = visible false.
5. 무투표 당선 처리
- 후보가 1명이고
degree = 80인 경우는 무투표 당선(UnopposedElected)으로 처리되는 흐름을 유지한다. - 관련 판정은
SbsElectionApiClient.MapJudgement기준으로 동작한다.
6. 광역단체장 컷 정당바 색상 적용
1-2위_ani_광역단체장1-2위_ani_광역단체장_loop1-2위_광역단체장
위 컷들의 정당바01은 generated color asset으로 우회하지 않고, Karisma의 Path Shape > Appearance > Face Color에 직접 SetStyleColor(face, order=0, ...)를 적용하는 방식으로 정리했다.
확인 메모:
- probe 기준
SetStyleColor(face, order=0, ...)호출은RESULT_SUCCESS로 확인했다. - RGB 값은 텍스트 스펙 값을 그대로 사용한다.
더불어민주당 정당바 = 0,30,84국민의힘 정당바 = 95,0,15
정당판은 현재 운영 요구에 맞춰 asset alias 경로를 유지한다.
7. style-bound 오브젝트 주의사항
- style color binding이 있는 오브젝트는 후보 슬롯 clear 단계에서 들어간 빈
SetValue("")가 최종 payload에 남지 않도록 정리해야 한다. - 이 값이 남아 있으면
Path Shape의 face color가 적용되지 않은 것처럼 보일 수 있다.
Verification Notes
dotnet build Tornado3_2026Election/Tornado3_2026Election.csproj -c Debug -p:Platform=x64빌드는 통과했다.- 기존 경고는
WindowsBase충돌 경고, 일부 미사용 이벤트, MSIX 인증서 관련 경고 수준으로 유지됐다.
Follow-up Candidates
- 사전투표율/개표율/후보 수 조건처럼 컷별 누락되기 쉬운 예외 규칙은 별도 체크리스트 문서로 분리해 두면 운영 검수에 유리하다.
경력_계열과 광역단체장 계열은 실제 입력 데이터 샘플을 기준으로 회귀 점검 항목을 추가해 두는 것이 좋다.