사유 × 종류별 지우는 DO
표는 sheet_json 에 TableItem 노드가 있는 DO, 차트는 ChartItem 노드가 있는 DO 입니다. 둘 다 가진 DO 는 양쪽 칸에 모두 셉니다. 숫자를 누르면 그 목록으로 갑니다.
세 가지 제거 사유
- 포함 관계 — 같은 페이지에서 나온 두 DO 중 한쪽의 노드가 다른 쪽에 전부 들어 있고, 차이가 텍스트·사진이 아닌 노드(선·도형·SVG·배경 등)뿐이면 포함하는 쪽만 남깁니다.
- 모양 완전 동일 — 서빙 때 바뀌는 것(텍스트 내용과 스타일, 색)을 빼고 비교했을 때 차이가 없습니다. 점수 0.
- 모양 극소 차이 — 같은 비교에서 남은 차이가 모서리·간격·테두리·차트 옵션 일부뿐입니다. 점수 0 초과 0.4 이하.
판정 순서
- 포함 관계 — 같은 페이지 DO 끼리 그룹을 뺀 노드 id 를 비교합니다. 한쪽이 다른 쪽에 전부 포함되고 차이가 텍스트·사진이 아닌 노드뿐이면 포함되는 쪽을 지웁니다. 포함하는 쪽에만 사진이 있으면 둘 다 남깁니다. 아래 모양 비교보다 먼저 적용합니다.
- 뼈대 — 노드 종류별 개수가 같고, 같은 종류끼리 컴포넌트 안 상대 위치·크기가 컴포넌트 크기의 5% 이내로 전부 짝지어져야 비교 대상이 됩니다. 가로세로비 ±10%. 컴포넌트가 페이지 어디에 놓였는지는 보지 않습니다(서빙 때 이동됩니다).
- 관문 — 아래 중 하나라도 다르면 점수와 무관하게 다른 컴포넌트입니다.
- 표시 여부: 차트 축·격자·범례·라벨 표시
- 이미지: 사진·프레임·비트맵·SVG·GIF 리소스(비주얼 서머리 서빙에는 이미지 대치가 없습니다)
- 차트 종류: 원 대 도넛 등
- 뒤집힘·회전: 방향이 다르고, 뒤집으면 모양이 달라지는 도형(썸네일에서 그 도형을 잘라 뒤집은 것과 비교)
- 표 칠한 칸 패턴: 색 값은 보지 않고, 헤더·홀수·짝수·마지막 행 × 첫째·가운데·마지막 열마다 칠했는지와 어느 칸끼리 같은 색인지
- 점수 — 짝지은 노드마다 서빙 때 바뀌는 것(텍스트 내용과 스타일 전부, 색, 차트 데이터 값)과 한쪽에만 있는 속성(편집기 메타데이터)을 빼고, 남은 스타일(모양·테두리·차트 옵션·기타)이 얼마나 다른지 0–1 로 재서 평균을 냅니다. 0.4 이하면 중복입니다.
- 남길 하나 — 중복끼리 이어진 묶음에서 다른 DO 와 가장 많이 이어진 DO 를 남기고, 같으면 id 가 작은 DO 를 남깁니다.
모집단과 한계
- 운영
iui.comp_frames의 컴포넌트 2.6 판 DO 개를 읽기 전용으로 조회했습니다. - 노드 개수와 가로세로비 구간으로 나눠 비교했기 때문에, 구간 경계에 걸친 쌍은 비교하지 않았습니다. 지우는 DO 수는 최소치입니다.
- 썸네일은 대치 전 원본입니다. 서빙 화면에서는 텍스트와 색이 바뀝니다. 흰 글자가 흰 바탕에서 안 보이면 썸네일 배경을 검정으로 바꿔 보세요.