요약
- 2013년 W3C 공개 논의에서는 같은 출처의 여러 실행 환경에 메시지를 전하는 방법을 검토했다. 2014년 기록에는 worker 참여가, 2015년 공개 서신에는 구현 논의가 나타난다.
- 현재 HTML 표준에서 브라우저는 이름과 저장소 키가 같은 수신 가능 채널을 찾아 데이터를 복제해 전달한다. 받은 화면이 어떤 조치를 할지는 사이트가 정한다.
A 탭에서 독자가 로그아웃한다. B 탭에는 저장한 기사 목록이 그대로 있고, C 탭은 계정 설정을 보여 준다. 같은 사무실에 앉아 있는 세 사람이 서로 다른 출근부를 펴 놓은 셈이다. 모든 탭이 서버에 거듭 물을 수도 있다. 방금 소식을 들은 탭이 옆자리에도 짧은 쪽지를 보내면 일이 간단해진다. 브라우저는 누가 그 사무실에 있는지 이미 알고 있었다.
2013년 시작된 W3C 공개 이슈에는 쪽지 배달 방식에 대한 토론이 남아 있다. 채널 이름을 받아 만드는 객체와 다른 동일 출처·동일 이름의 수신자에게 전달하는 postMessage() 제안이 등장한다. 세부 모양은 계속 다듬는 중이었지만, 한 탭이 다른 모든 창의 주소를 따로 알아야 하는 번거로움을 없애자는 방향은 분명했다.
배달 범위는 2014년 1월의 다른 W3C 이슈에서 넓어졌다. worker에서도 BroadcastChannel을 쓰자는 요청이었고, 6월 기록에는 HTML 작업에서 변경이 이루어졌다고 적혀 있다. 화면 뒤에서 일을 하는 worker도 조건이 맞으면 같은 이름의 연락망에 들어온다. 창과 배경 작업이 한 복도에서 소식을 들을 수 있게 된 것이다.
2015년 1월 WHATWG 공개 메일은 Firefox Nightly를 향한 구현 작업을 이야기하며 HTML 명세를 가리킨다. 그해 10월 W3C HTML 5.1 작업 초안의 색인에도 BroadcastChannel이 인터페이스로 실렸고, 정의는 WHATWG로 연결됐다. 토론장의 아이디어가 브라우저 제작 현장으로 옮겨 가는 모습이 공식 기록에 남아 있다.
현재 HTML 표준은 배달 경로를 자세히 쓴다. 메시지를 직렬화한 다음, 같은 채널 이름과 저장소 키를 가진 수신 가능 객체를 찾는다. 보낸 객체는 빼고, 나머지에 message 이벤트를 차례로 넣는다. 창의 문서는 완전히 활성 상태여야 하고 worker도 수신 가능한 상태여야 한다. 저장소 구획이 다르면 같은 이름의 문패를 달았어도 다른 건물이다.
표준에 실린 예시도 로그아웃이다. 한 탭이 알리고 다른 탭이 화면을 고친다. 채널은 사건을 전달한다. 세션 처리와 화면 변경은 사이트 코드가 맡는다. 화면 테마가 바뀌거나 여러 탭에 보이는 작업이 끝났을 때도 같은 구조를 쓸 수 있다. 브라우저는 우편 배달부이고, 편집부는 편지를 읽고 움직이는 사람들이다.
업무가 끝나면 채널을 닫아야 한다. 표준은 메시지 수신자가 남아 있는 채널 객체가 메모리에 계속 살아 있을 수 있다고 설명한다. 편리한 내선도 아무도 없는 사무실에서 계속 울리게 둘 이유는 없다. 그래도 가장 큰 어색함은 사라졌다. 한 탭에서 독자가 떠나면 다른 탭도 그 말을 들을 수 있다.
회원 브리핑
프로필 심층 컨텍스트
올바른 멤버십 등급으로 로그인하면 전체 브리핑과 출처 노트를 볼 수 있습니다.
Strategic Circle 전용
Strategic Circle
모든 독자에게 공개됩니다. 가입 후 로그인하면 프로필 브리핑를 열람할 수 있습니다.
Strategic Circle 가입하기Leadership Alliance 전용
Leadership Alliance
자격을 갖춘 IP 자산 소유자 및 운영진을 위한 콘텐츠입니다. 로그인하면 Leadership Alliance 브리핑을 열람할 수 있습니다.
Leadership Alliance 가입하기





