Blink 인텐트란 무엇인가요?

엔지니어가 Blink 렌더링 엔진을 변경하려면 blink-dev 메일링 리스트에 게시하여 진행에 대한 승인을 받습니다. 이러한 메일링 리스트 게시물을 Blink 인텐트라고 합니다.

Chromium 기반 웹브라우저는 Blink 렌더링 엔진을 사용하여 코드와 리소스를 볼 수 있고 상호작용할 수 있는 웹페이지로 변환합니다.

blink-dev 메일링 리스트

Blink 인텐트의 작동 방식, 중요성, 새로운 기능이 Blink에 도입되는 방식을 알아보세요.

Chromium은 Chrome 및 일부 다른 브라우저와 프레임워크가 빌드되는 오픈소스 브라우저 프로젝트입니다. Blink는 Chromium에서 사용하는 렌더링 엔진입니다.

새 기능이 Blink에 적용되려면 Chromium 프로젝트의 공개 개발 프로세스를 거쳐야 합니다. '새로운 기능'은 브라우저 코드 또는 아키텍처의 변경사항 또는 추가사항입니다. 새로운 JavaScript API, Blink 코드의 상당한 성능 개선, 브라우저의 모양이나 작동 방식에 대한 다른 변경사항일 수 있습니다.

개방적이고 협력적인 절차

Chromium은 수천 명의 참여자가 있는 거대하고 복잡한 프로젝트입니다. Chromium이 변경될 때마다 각 마일스톤은 더 광범위한 웹 생태계를 초대하여 설계 및 구현에 관한 의견을 받을 수 있는 기회입니다.

가능하면 새 기능은 웹 플랫폼 전반에서 상호 운용 가능해야 하며 하나의 브라우저에서만 구현되어서는 안 됩니다. 웹 개발자는 브라우저가 예상대로 작동하지 않거나 브라우저와 플랫폼마다 다른 코드를 작성해야 하는 등 예상치 못한 상황이 발생하는 것을 원하지 않습니다. Blink 인텐트는 변경 프로세스를 구조화하고 규제하여 변경사항을 더 예측 가능하고 예상치 못한 변화가 없도록 하는 데 도움이 되므로 웹 개발자에게 유용합니다.

사용자의 경우 브라우저 공급업체는 변경사항으로 인해 웹사이트가 작동하지 않도록 주의해야 합니다. 사이트 소유자가 웹사이트 유지보수를 중단하는 경우가 많습니다. 일부 사이트는 수십 년 동안 업데이트되지 않았습니다. 브라우저 공급업체는 중단을 일으킬 수 있는 변경사항을 적용할 때 이를 고려해야 합니다.

아이디어에서 제안서까지

웹 플랫폼 변경 및 업데이트 제안은 사용자, 비즈니스, 브라우저 엔지니어, 웹 개발자, 기타 이해관계자와의 컨설팅 등 연구를 통해 얻어집니다. 이러한 조사를 통해 Chrome팀은 플랫폼에서 누락된 항목이나 변경해야 할 항목을 파악할 수 있습니다. 처음에는 웹 플랫폼의 변경사항 또는 새 기능에 대한 제안은 페이지에 표시된 단어에 불과합니다. 엔지니어는 동료의 의견과 논의를 위해 문서를 공유합니다.

예: FedCM

제휴 사용자 인증 정보 관리(FedCM)는 제휴 ID라고 하는 사용자 가입 및 로그인을 관리하는 플랫폼에 더 나은 새로운 메커니즘을 제공하는 API입니다. 예를 들어 'Google 계정으로 로그인' 또는 'GitHub 계정으로 로그인'을 선택하는 경우를 들 수 있습니다.

FedCM과 같은 제안이 공개 토론에 준비되면 GitHub에 설명으로 게시됩니다. 이 시점에서 누구나 GitHub의 설명 저장소에서 문제를 만들어 기능 설계와 관련해 질문하거나 의견을 제출할 수 있습니다. 의견은 추가 사용 사례나 제약 조건을 설명하거나 개선 아이디어를 제공하거나 지원을 표시할 수 있습니다.

GitHub의 FedCM 설명

제안서가 W3C와 같은 표준화 기관에서 채택되면 이해관계자는 W3C 작업 그룹과 같은 웹 표준 그룹에서 토론에 참여하고 프레젠테이션을 시청할 수 있습니다.

엔지니어가 새 기능을 개발하거나 Blink 렌더링 엔진을 변경하는 각 마일스톤에서 blink-dev 토론 그룹에 게시물을 게시하여 기능 구현을 위한 다음 단계로 이동할 계획이라고 설명합니다. 이러한 게시물을 '인텐트'라고 합니다. 누구나 blink-dev 그룹을 구독하여 Blink의 새로운 기능이 진행될 때 알림을 받거나 업데이트를 위해 개별 기능을 구독할 수 있습니다.

프로토타입 제작 의도: 첫 번째 체크포인트

이 시점에서 Chromium 엔지니어는 기능 구현을 시작할 수 있습니다. 즉, 이 기능의 프로토타입 기능은 기능 플래그를 통해 개발자 테스트용으로 제공될 수 있으며, 처음에는 Chrome Canary에서, 이후에는 다른 출시 채널에서 제공될 수 있습니다. 모든 사용자는 chrome://flags 페이지에서 플래그를 설정하여 브라우저에서 기능을 활성화하고 테스트할 수 있습니다.

하지만 chrome://flags 페이지에서 모든 플래그를 설정할 수 있는 것은 아닙니다. 더 세부적으로 제어하려면 명령줄 플래그를 사용하여 터미널에서 Chrome을 실행하면 됩니다. 일부 새로운 기능은 Chrome Canary에서 테스트를 위해 출시될 때까지 사용할 수 없습니다(매우 드물지만). 일부 기능에는 자체 플래그가 없지만 experimental-web-platform-features 플래그가 사용 설정된 경우 사용할 수 있습니다. 이는 일반적으로 구현하는 데 최대 3~6개월이 걸리지 않는 '소규모' 기능에 해당합니다.

프로토타입에 대한 의견 수집

새 기능의 프로토타입 제작이 시작되면 Chromium 엔지니어가 토론과 초기 실험을 제안합니다. 이 시점에서의 의견은 제안서를 검증하고 반복하는 데 중요합니다. Chrome의 구현에 관한 의견은 Chromium 버그에 제출하세요.

Chromium Issue Tracker에서 문제를 만듭니다.

실험 의도: 실제 환경에서 테스트

Chrome 엔지니어가 오리진 트라이얼 실행을 요청하려는 경우 blink-dev에 실험 의도 게시물을 게시하는 것은 선택사항인 다음 단계입니다.

FedCM 실험 의도

오리진 트라이얼은 새로운 기능 또는 실험용 웹 플랫폼 기능을 테스트하는 방법입니다. 기능의 오리진 체험판에 등록한 후 체험판 토큰을 가져옵니다. 이 기능은 토큰을 제공하는 모든 페이지에서 활성화됩니다.

사용 가능한 Chrome 오리진 트라이얼 목록입니다.

기능 구현을 진행하려면 Blink API 소유자가 LGTM이라고 하는 '좋아요' 게시물로 인텐트에 답장하여 승인해야 합니다.

Blink API 소유자는 웹 플랫폼 및 API에 대한 경험이 풍부하고 Blink의 사명과 가치에 전념하며 Blink 커뮤니티의 승인을 받은 소수의 Chromium 참여자 그룹입니다. API 소유자는 구현을 진행할 기능에 대한 승인 여부를 결정할 뿐만 아니라 Blink 인텐트 프로세스 자체를 감독합니다.

실험 의도는 API 소유자로부터 LGTM을 한 번 이상 받아야 합니다.

FedCM 실험 의도 게시물에 LGTM을 추가합니다.

출처 실험의 가치

개발자는 기능의 오리진 체험판에 가입한 후 실제 환경에서 실제 사용자를 대상으로 프로덕션 버전의 기능을 테스트할 수 있습니다. 이때 사용자는 기능을 활성화하기 위해 별도의 조치를 취하지 않아도 됩니다. 개발자는 테스트 결과를 공유할 수 있으며, 이를 통해 기능을 반복하고 개선하는 데 도움이 되는 유용한 통계와 데이터를 얻을 수 있습니다.

발송 의도: 최종 마일스톤

출시 인텐트는 이제 기능이 완료되었으며 플래그나 체험 토큰 없이 Chrome 안정화 버전의 모든 사용자를 대상으로 정식 버전으로 구현할 준비가 되었다는 신호를 보냅니다. 출시 인텐트를 구현하려면 API 소유자로부터 세 번의 LGTM을 받아야 합니다.

새로운 기능 출시

승인되면 기능이 출시 예정 버전에 병합된 후 Chrome 출시 채널을 통해 진행됩니다. 새 기능의 테스트 및 구현은 종종 각별한 주의로 처리됩니다. 일부 기능은 점진적으로 더 많은 사용자에게 출시됩니다. 예기치 않은 부작용이 있는 경우 기능을 롤백하고 수정할 수도 있습니다.

기능 수명 주기 관리: 지원 중단 및 삭제

Blink 인텐트에는 다른 두 가지 유형이 있습니다.

  • 지원 중단 의도
  • 삭제 의도

이러한 조치는 다소 슬프게 들릴 수 있지만 Blink 개발의 성공을 위해 매우 중요합니다.

엔지니어가 개발자에게 기능이 지원 중단될 예정이라는 경고를 시작하려는 경우 지원 중단 인텐트를 게시합니다. 예를 들어 Chrome DevTools 콘솔에서 지원 중단에 관한 지원과 정보를 제공합니다.

엔지니어가 코드를 기본적으로 비활성화하려는 경우 삭제 의도가 게시됩니다.

blink.dev의 지원 중단 의도에 대한 LGTM

지원 중단 및 삭제의 중요성

지원 중단과 삭제는 모두 웹 플랫폼의 상태에 매우 중요합니다. Chrome에서 최종 사용자 또는 웹 개발자에게 잘 작동하지 않는 기능을 삭제하고 코드베이스의 복잡성을 줄일 수 있도록 합니다. 예를 들어 안정적인 브라우저의 프로덕션 사이트에서 AppCache가 사용된 후 AppCache 설계 관련 문제가 발견되어 API가 결국 삭제되었습니다. 지원 중단 및 삭제는 잠재적인 공격 벡터를 줄여 Chrome을 안전하게 유지하는 데도 도움이 됩니다.

모든 Blink 인텐트와 마찬가지로 Chrome팀은 신중하게 결정을 내리기 위해 최선을 다하고 있습니다. 계속하기 전에 기능 사용률 및 기타 데이터를 검토합니다. 기능을 삭제하기 위한 기준은 매우 높습니다. 기능이 극소수의 사용자만 사용하고 더 나은 대안이 있는 경우에만 삭제됩니다.

Chrome 상태에서 기능 진행 상황을 추적할 수 있습니다. 여기에서 업데이트를 구독하고, 버그를 신고하고, 다른 리소스를 찾을 수 있습니다.

chromestatus.com의 Chrome 기능 로드맵

새 기능을 추적하려면 Chromium 블로그를 팔로우하세요. blink-dev 토론방에 가입하여 모든 Blink 인텐트를 확인할 수 있습니다. 이로 인해 많은 이메일이 전송될 수 있습니다. 또는 단일 인텐트를 구독하는 것이 좋습니다. Blink 인텐트의 스프레드시트는 bit.ly/blinkintents에서 확인할 수 있습니다. Blink 인텐트가 정말 마음에 든다면 자동화된 Blink 인텐트 추적기 서비스를 기반으로 빌드할 수도 있습니다.

다음 단계

Chrome 출시 채널이란 무엇인가요?를 참고하세요.