# TornadoAce CJ OnStyle 초기 구조 ## RFP에서 잡은 핵심 흐름 1. 큐시트 플랫폼과 ERP 편성 데이터를 API로 수신한다. 2. 큐시트 필드를 사전 정의된 Tornado Scene 템플릿 객체에 매핑한다. 3. Tornado Scene에서 화면에 노출되는 Text/Image 데이터를 추출하는 API를 둔다. 4. 큐시트 데이터와 Scene 데이터를 1차 Text Diffing으로 비교한다. 5. 1차 실패 건은 LLM 검수로 중요도를 판정하고 제작자에게 피드백한다. ## 현재 초기 빌드 범위 - `Domain`: 큐시트, Scene 템플릿, Scene 데이터 스냅샷, 검수 결과 모델. - `Data`: 큐시트, Scene 템플릿, Scene 추출값을 담은 JSON 기반 PoC 샘플. - `Services`: 실제 API/Tornado SDK 연결을 받을 인터페이스, JSON 로더, 목 워크스페이스. - `ViewModels`: 운영 콘솔에 표시할 상태 카드, 파이프라인, 매핑표, 검수 큐. - `Views`: WinUI 3 기반 첫 화면. 예제 프로젝트와 같은 데스크톱 앱 방향으로 유지. ## Visual Studio 실행 기준 - 현재 프로젝트는 `WindowsPackageType=None`인 unpackaged WinUI 3 앱이다. - 솔루션 구성에서 Deploy 대상이 아니므로 `*.appxrecipe` 산출물을 요구하지 않는다. - VS에서는 `x64` 구성으로 빌드/디버그 실행한다. ## 도입 화면 방향 - CargoRadar의 전체 화면 사진형 로그인 도입부를 참고하되, TornadoAce는 CJ OnStyle 라이브커머스/방송 CG 제작 데스크 분위기로 전환한다. - CJ ONSTYLE 공식 소개의 `Inspiring Purple` / `Vibrant Lime` 조합은 로그인 카드와 핵심 강조색에만 절제해서 사용한다. - 관제/비행/지도/레이더처럼 보이는 모니터 그래픽이나 불필요한 신호선 장식은 사용하지 않는다. - TornadoACE 브랜드 asset은 사용자가 제공한 Tornado 원본 마크를 기준으로 파생한다. 원본은 `Assets/Reference/TornadoReference.png`, 추출 마크는 `Assets/Brand/TornadoOriginalMark.png`에 보관한다. - 현재 로그인은 실제 인증이 아니라 초기 빌드용 진입 게이트이며, 추후 사내 계정/권한 정책이 정해지면 인증 서비스로 교체한다. ## 다음 설계 결정 지점 - Tornado2와 Tornado3의 어댑터 경계를 같은 인터페이스로 유지할지 여부. - Scene 내부 비노출 객체를 구분할 메타데이터 규칙. - 큐시트 API 원문 필드명과 화면용 정규화 필드명 분리 방식. - 특수문자 예외 처리 목록을 룰 파일로 둘지 관리자 UI에서 편집할지 여부. - LLM이 반환할 중요도 스키마와 감사 로그 보관 범위.