Web을 포크하는 것에 관하여
4 hours ago
2
- 대안 명세의 목표는 Web 전체가 아니라 2026년 5월 6일 기준 압축 해제 크기 18.3MiB인 HTML 명세를 우선 대상으로 삼아, Web의 장점은 유지하고 단점은 피하는 것임
- 명세는 짧고 단순해야 하며, 전체 명세를 담은 압축 tar.gz를 1.44MiB로 제한하는 방식처럼 구현 부담을 낮춰 다양한 브라우저와 클라이언트가 나올 수 있게 해야 함
- 현재 Web specification처럼 계속 바뀌는 문서가 아니라 1.2.3 같은 의미적 버전을 가져야 하며, 게시된 표준 버전은 절대 변경되지 않아야 함
- 명세에는 쉽게 파싱 가능한 모호하지 않은 형식 문법이 포함되어야 하고, 표준을 준수하지 않는 페이지는 렌더링하지 않도록 해 파서와 콘텐츠 도구 제작 비용을 낮춰야 함
- 대안 명세는 기능별 Web 복제가 아니라 작성된 텍스트 중심의 정보 교환을 목표로 하며, 스크립팅 대신 Geo link나 tiled web map 표준처럼 표준화된 파일·URL을 네이티브 프로그램에서 여는 방식을 선호함
웹 대안 명세의 목표
- HTML 명세는 2026년 5월 6일 기준 압축 해제 크기가 18.3MiB이며, 우선 검토 대상은 Web 전체가 아니라 HTML 명세로 한정됨
- 목표는 Web의 장점을 가능한 한 유지하면서 단점을 피하는 대안 명세를 만드는 것임
- 아직 정식 명세가 아니라 시간이 지나며 바뀔 수 있는 비공식 노트에 가까움
단순성과 구현 다양성
- 전체 명세는 짧고 단순해야 하며, 낮은 노력으로 다양한 브라우저와 클라이언트를 만들 수 있어야 함
- 수십 년 동안 단순성을 유지하기는 매우 어렵기 때문에, 명세 길이를 바이트 단위로 제한하는 규칙이 한 가지 방법이 될 수 있음
- Dillo는 릴리스를 단일 플로피 디스크에 맞추기 위해 같은 방식을 사용하고 있으며, 대안 명세도 전체 명세를 담은 압축 tar.gz 기준 1.44MiB 제한을 둘 수 있음
의미적 버전 관리
- 현재의 Web specification은 대략 매주 바뀌는 페이지라, 클라이언트가 명세를 따르려면 계속 변경을 따라가야 하는 문제가 있음
- 대안 명세는 1.2.3 같은 정확한 의미적 버전을 가져야 함
- 1.2.3 문서는 1.2.3, 1.2.0, 1.3.0을 지원하는 브라우저에서 올바르게 렌더링될 수 있지만, 1.1.0이나 2.0.0만 지원하는 브라우저에서는 그렇지 않다는 식의 호환성 기준이 필요함
- 문서 작성 대상은 브라우저별 구현 상태가 아니라 표준 버전이어야 하며, 예를 들어 브라우저의 90%가 1.2.0 표준을 지원한다는 전제에서 해당 버전을 대상으로 작성할 수 있음
- 한번 게시된 표준 버전은 절대 변경되지 않아야 함
- 오타 수정은 패치 버전 증가로 처리함
- 하위 호환 새 기능은 마이너 버전 증가로 처리함
- 호환성을 깨는 변경은 메이저 버전 증가가 필요함
- 1.2.0 표준의 인쇄본만 있어도 고립된 환경에서 완전히 준수하는 브라우저를 만들 수 있고, 그 브라우저는 영구적으로 1.2.X 문서를 올바르게 파싱할 수 있어야 함
엄격한 문법
- 명세에는 쉽게 파싱 가능한 모호하지 않은 형식 문법이 포함되어야 함
- 페이지는 표준에 대해 테스트되어 준수 여부를 판정받고, 준수하지 않는 페이지는 렌더링되지 않아야 함
- 클라이언트가 명세를 따르지 않는 페이지를 받아들이는 것은 명시적으로 금지됨
- 깨진 페이지를 고치기 위한 복잡한 표준화 규칙을 구현하지 않아도 되며, 명세의 실수는 이후 버전에서 바로잡도록 강제하는 효과가 있음
- 엄격한 문법은 사람이 작성하기 쉽고 더 관대한 언어, 예를 들어 Markdown으로 이동하게 만들 가능성이 있으며, 이는 의도된 효과임
- 파서를 단순화하고 콘텐츠를 조작하는 도구 제작 비용을 낮추는 것이 목표임
- 패치 버전 변경은 문구만 바꾸며, 문법은 그대로 유지됨
HTML 재사용 가능성
- 기존 소프트웨어에서 최소한의 노력으로 동작하도록 HTML의 부분집합을 만들 수 있다면 바람직함
- 다만 HTML 파싱의 복잡성 때문에 가능하지 않을 수 있음
- XML 문서의 형식 문법을 만드는 일도 단순하지 않기 때문에, HTML/XML이 단순 파싱에 적합한 형식인지는 검토가 필요함
표준 포획에 대한 저항
- Web의 문제 중 하나는 독점적 주체가 수익 추출 메커니즘을 만들 수 있게 되면, 표준을 포획해 자신에게 유리하게 바꿀 유인이 생긴다는 것임
- Web에서는 그 결과 표준 복잡성이 통제 불가능하게 커졌고, 새 브라우저의 진입 장벽이 높아졌으며 경쟁이 줄어든 것으로 봄
- 이런 상황을 막기 위한 초기 아이디어는 있지만, 게임 이론 관점에서 더 신중한 검토가 필요함
텍스트 우선 원칙
- 명세의 목적은 인쇄된 책이나 글처럼 인간 사이에서 정보를 전달하기에 충분한 세부사항을 다루는 것임
- 작성된 텍스트는 정보를 인코딩하는 가장 다재다능한 매체로 우선되어야 함
- 텍스트는 번역될 수 있고, 컴퓨터가 소리 내어 읽을 수 있으며, 적은 저장공간에 저장될 수 있음
- 문서는 화면 크기에 맞춰 줄바꿈되어야 하며, 같은 문서를 작은 화면과 큰 화면 모두에서 읽을 수 있어야 함
스크립팅 배제
- 스크립팅 기능 추가는 실수였으므로 대안 명세에서는 피할 수 있음
- 이것이 사용자의 상호작용 프로그램 사용을 제한하는 것은 아님
- 예를 들어 현재는 JavaScript로 브라우저 안에서 관심 지점 위치를 보여주는 대화형 지도를 로드하지만, 대신 Geo link를 제공해 해당 프로토콜을 지원하는 어떤 클라이언트에서든 위치를 열 수 있음
- 마찬가지로 공개 명세가 있다면 어떤 클라이언트든 서버의 지도 타일을 사용할 수 있으며, 관련 예로 tiled web map 표준이 제시됨
- 표준화된 파일이나 URL을 네이티브 프로그램에서 여는 방식은 사용 중인 기기에 맞게 최적화될 수 있고, 많은 대화형 웹 페이지의 일률적 접근을 피할 수 있음
목표가 아닌 것
- 목표는 Web을 기능별로 복제하는 것이 아님
- 인간이 지식, 노트, 기타 정보를 교환할 수 있게 하되, 그것을 읽기 위해 완전한 VM을 실행해야 하는 요구를 제거하는 명세를 만드는 것이 목표임
-
Homepage
-
Tech blog
- Web을 포크하는 것에 관하여