요약

  • 2017년 2월 28일 W3C 메일 기록에 따르면 Chrome, Edge, Firefox, WebKit 관계자들은 초기 바이너리 형식과 JavaScript API에 합의했다. 브라우저 미리보기 단계가 끝났고 기본 활성화 배포가 가능해졌으며, 후속 기능은 이전 형식과 호환돼야 했다.
  • Mozilla의 2017년 11월 발표는 네 주요 브라우저 제품의 지원 배포를 확인한다. W3C 출판 기록에서 Core 첫 공개 초안은 2018년 2월 15일, 권고안은 2019년 12월 5일이다.

실행 주체가 먼저 신호를 보냈다

2월의 메일은 W3C 정식 표준이 완성됐다는 선언이 아니었다. 더 이상의 유용한 설계에는 구현 경험과 충분한 사용이 필요하다는 판단이었다. 서로 다른 네 브라우저 진영이 공통의 초기 형식과 인터페이스를 받아들였고, 이를 기본으로 켤 수 있다고 했다. 설계 회의에서 제품의 실행 경로로 무게중심을 옮기는 순간이었다.

그 선택은 미래의 자유도도 줄였다. 앞으로 추가할 기능은 이미 내보낸 형식과 호환돼야 한다. 웹사이트가 그 바이너리 형식으로 모듈을 전달하기 시작하면, 나중의 변덕스러운 변경은 회의 문서가 아니라 운영 중인 애플리케이션을 깨뜨린다. 커뮤니티 그룹의 합의가 힘을 가진 이유는 구현자들이 각자 배포판에 그 책임을 싣기 때문이었다.

원본 메일은 JavaScript API, 바이너리 형식, 참조 인터프리터를 함께 적고 있다. 따라서 W3C 첫 공개 초안이 없었다는 말은 설계 자료가 없었다는 말이 아니다. 메일은 W3C 작업반을 구성해 초기 버전의 정식 규격을 만드는 일을 다음 단계로 놓았다. 배포 가능한 MVP와 정식 권고안은 같은 문서의 두 이름이 아니다.

배포된 브라우저가 계획표를 추월했다

Mozilla의 11월 기록은 Safari와 Edge가 Firefox, Chrome에 합류했다고 설명한다. 네 제품의 출시 사실이지, 모든 사용자의 기기가 업데이트됐다는 점유율 자료는 아니다. 하지만 개발자에게는 의미가 컸다. 같은 초기 모듈을 실제로 배포된 여러 브라우저에서 시험할 수 있게 됐기 때문이다.

2017년 W3C 작업반 헌장은 그해 4분기에 첫 공개 초안, 2018년 2분기에 첫 권고안을 예상했다. 실제 출판 기록은 2018년 2월 첫 초안, 2019년 7월 후보 권고안, 2019년 12월 정식 권고안을 보여준다. 계획보다 늦었다. 자료는 지연의 단일 원인을 말하지 않는다. 확실한 사실은 기관의 문서 일정이 실행 코드의 출시 일정을 지배하지 못했다는 것이다.

나중에 찍힌 도장의 역할

W3C의 2019년 12월 발표는 세 문서를 함께 권고안으로 올렸다. Core는 가상 머신과 코드 형식, JavaScript Interface는 함수 호출과 값 교환, Web API는 웹에서 리소스를 가져와 실행하는 절차를 다룬다. 바이너리 모듈을 읽는 능력만으로 페이지가 그것을 어떻게 불러오고 호스트와 상호작용하는지까지 정해지지는 않는다.

헌장은 시험 모음, 구현 보고서, 공개 논의와 다른 작업반의 검토도 요구했다. 먼저 실행된 제품이 있다고 공식 표준화가 장식이 된 것은 아니다. 반대로 2019년의 권고안이 2017년의 제품 출하를 만들어낸 것도 아니다. 초기 호환 대상을 구현자들이 고정하고, 브라우저가 이를 사용자에게 전달하고, W3C가 경계를 검증 가능한 공적 문서로 완성했다. 이 순서가 두 제도의 권한을 정확히 보여준다.