내용시각화 · 데이터 포맷 레퍼런스
컴포넌트 한 벌이 만들어져 풀에 들어가고,
런타임에 꺼내져 쓰이기까지. 이 묶음은 그 두 구간을 한 흐름으로 잇는다.
모양(sheet json)을 고치고, 의미(RLSC)로 판단하고,
테마에 맞추는 세 축이 각 구간 어디에서 만나는지를 코드로 확인해 적었다.
true 인 것만 풀에 남는다.Background Extractor
템플릿 여러 쪽을 겹쳐 보고 쪽의 틀과 쪽의 내용을 가른다. 띠·기둥 → 되풀이 → 무리 표결 → 배제. 결과는 6-ALSC 여섯 통.
Garbage Collector
풀에 남을 자격을 심사하는 기계 게이트. 키 세 상태, 소유 세 곳,
대상 세 모드, 판정 두 층. 현행 GCv1.0.
런타임 대치
검색으로 고른 컴포넌트를 캔버스에 앉히는 4단계. 테마 경로가 두 갈래로 갈리는 자리와, 쓰이지 않는 v2 엔진.
§1~§4 (이 페이지)
세 표현의 정의와 전체 지도. 각 구간이 무엇을 받아 무엇을 내는지, 어디서 무엇이 결정되는지.
하나의 디자인이 세 표현으로 동시에 존재한다. 그리는 것은 모양, 판단하는 것은 의미, 색을 맞출 곳은 테마다. 셋은 상속 관계가 아니라 서로 다른 질문에 답하는 서로 다른 자료다.
Sheet json
실제로 그리는 원본 노드 트리. PageJson ·
design_object_sheet_json.
모든 대치의 최종 수정 대상이다 — 내용·스타일·이미지 대치 셋 다 결국 이것을 고친다.
RLSC
type / role 두 축의 트리. aippt 파이프라인이 오프라인에서 만든다. 컴포넌트 단위(Component RLSC)는 검색·랭킹·폰트 주입의 근거이고, 시트 단위(Sheet RLSC)는 시그니처의 원료다.
테마
두 갈래다. 내용시각화는 런타임에 템플릿 페이지에서 뽑은
ColorProfile 을, AI 프레젠테이션은 오프라인 파일
ThemeRegistry 를 쓴다. 자세히는
런타임 대치 §3.
엔진은 PageData / PageJson,
iui 는 Doc / Sheet,
MORDOR 는 느슨한 PageJson 이다.
상속이 아니라 각자 필요한 필드만 다시 선언한 것이라 구조적으로 호환되어 그냥 넘겨 쓴다.
필드 단위 해부는 sheetJson 해부도에 있다.
위 줄은 오프라인이다. 배치로 돌고, 사람이 검수하고, 결과는 DB 에 남는다. 아래 줄은 런타임이다. 사용자가 버튼을 누른 그 순간 브라우저에서 돈다. 둘을 잇는 것이 가운데 서빙 풀이고, 위 줄은 거기에 쓰고 아래 줄은 거기서 읽기만 한다.
| 구간 | 입력 | 여기서 결정되는 것 | 어디에 남나 |
|---|---|---|---|
| Background Extractor 오프라인 |
템플릿 하나 = 쪽 여러 장 | 노드마다 slidemaster / foreground |
background_alsc · foreground_alsc + 롤 버킷 4 |
| 구조화 (I.I.S.) 오프라인 |
쪽 · ALSC | type / role 두 축의 의미 트리 | structure_json (Component RLSC) |
| 린터 · 유효성 오프라인 |
구조화 결과 | 이 컴포넌트가 규격에 맞는가 | valid_component_meta |
| GC 게이트 오프라인 |
유효성 통과분 | 이 컴포넌트가 쓸 만한가 | garbage_collector_meta · 판정 원장 |
| comp-sign 검색 런타임 · 서버 |
시그니처 · 질의 | 무엇으로 바꿀지 (후보키) | 응답 — 후보키와 파일 URL |
| 4단계 대치 런타임 · 브라우저 |
후보 sheet json + RLSC + 이미지 | 글·폰트·색·이미지를 실제로 바꾼 sheet json | 메모리 — 곧바로 캔버스로 |
오프라인 네 구간은 aippt-prisonbreak, 런타임 두 구간은
miricanvas-web-2 와 miricanvas-iui 에 있다.
구간별 파일·줄 번호는 각 낱장의 코드 지도 절에 있다.
정하지 않는다. 런타임 색 재배정 함수 recolorComponent 의 입력은
모양 · 테마 · 배경색 셋뿐이다. 상위 계약을 맞추느라 RLSC 를 인자로 받기는 하지만
이름 앞에 밑줄이 붙어 있고(_componentRlsc) 본문에서 쓰지 않는다.
RLSC 가 실제로 쓰이는 곳은 검색·랭킹, role 폰트 주입, 이미지 대치의 role 게이트 셋이다.
두 키의 교집합이다. 유효성 키는 «규격에 맞는가»(자격), GC 키는 «쓸 만한가»(품질)로 묻는 질문이 다르고, 판 갈이 주기와 소유도 다르다. 그래서 컬럼을 갈라 두었다. 한쪽만 보면 규격에는 맞지만 품질 게이트에서 걸린 것이 서빙에 섞인다.
아니다. 키 없음은 미판정이고, 통과(true)·걸림(false)과 구별되는 제3의 상태다.
판정 불가인 것을 조용히 통과시키지 않으려고 일부러 비워 둔다.
자세히는 Garbage Collector §1.