0001 · 범위와 적합성
상태: 제안 · 명세 버전: 0.1.0-draft
제품 경계
스피논은 같은 앱 작성 소스를 웹 DOM과 모바일 GPU UI 경로로 빌드하는 프레임워크다. 모바일에서 HTML 이름을 사용해도 브라우저 문서·DOM 전체·Web API 전체를 구현한다고 간주하지 않는다. Android와 iOS의 일반 UI 노드는 각각의 플랫폼 뷰와 1:1로 대응하지 않는다. WebView는 명시적인 별도 컴포넌트다.
React, Vue, Svelte는 서로 다른 작성 문법과 상태 관리 방식을 가진다. 스피논의 공통 계약은 태그 의미, 지원 CSS, 이벤트, 호스트 명령이다. 첫 적합성 대상은 React·Vite·단일 모바일 번들이다. 다른 프레임워크와 번들러는 각각 별도 적합성 대상이다.
지원 표기
목표 범위와 현재 적합성 상태는 별도 열로 기록한다. 구현 전에 정하는 첫 수직 구현의 포함·제외·미정 범위는 제품의 지원 판정이 아니다. 아래 표기는 구현 결과를 판정할 때 사용한다.
일부 CSS 선언이나 이벤트를 조용히 무시한 화면을 지원으로 표시해서는 안 된다. 지원표에는 최소한 플랫폼, 프레임워크 어댑터, 엔진·번들 형식 버전, 입력, 기대 결과, 오류, 접근성 결과를 기록한다.
첫 범위 표를 작성할 때는 기능마다 첫 수직 구현 목표: 포함/제외/미정과 현재 적합성: 미검증/지원/차이/미지원/미정을 분리한다. 제외하기로 결정했어도 진단이 구현되지 않았다면 현재 상태는 미검증으로 남기고, 근거 없는 미지원 판정을 붙이지 않는다.
적합성의 최소 단위
- 화면: 텍스트 내용, 노드 순서, 크기·위치, 이미지 실패 표시와 접근성 이름을 확인한다. 웹과 모바일의 폰트 픽셀 차이는 별도로 기록한다.
- 입력: 터치·키보드·보조 기술 활성화가 해당 이벤트를 내고, 제거된 핸들러가 다시 호출되지 않는지 확인한다.
- 비동기: JS 호출, 호스트 콜백, 마이크로태스크, 커밋과 화면 표시의 순서를 구분한다.
- 수명: 회전·백그라운드 복귀·표면 재생성 뒤 노드·콜백·GPU 자원이 일관된지 확인한다.
- 진단: 미지원 태그·속성·CSS·API의 위치와 이유를 개발자가 알 수 있다.
미정
시각적 허용 오차, 브라우저 기본 스타일과의 차이 허용치, 정확한 스펙 버전 정책, 플랫폼별 최소 OS 버전은 첫 실기기 수직 구현 전에 정한다. 이 값이 없으면 100% 웹 호환 또는 성능 우위를 주장하지 않는다.