엔지니어가 Blink 렌더링 엔진을 변경하려는 경우 blink-dev 메일링 리스트 에 게시하여 진행 승인을 받습니다. 이러한 메일링 리스트 게시물을 Blink 인텐트 라고 합니다.
Chromium 기반 웹브라우저는 Blink 렌더링 엔진을 사용하여 코드와 리소스를 보고 상호작용할 수 있는 웹페이지로 변환합니다.
Blink 인텐트의 작동 방식, 중요성, 새로운 기능이 Blink에 도입되는 방법을 알아보세요.
Chromium 및 Blink
Chromium은 Chrome 및 일부 다른 브라우저와 프레임워크가 빌드되는 오픈소스 브라우저 프로젝트입니다. Blink는 Chromium에서 사용하는 렌더링 엔진입니다.
새로운 기능이 Blink에 도입되려면 Chromium 프로젝트의 공개 개발 프로세스를 거쳐야 합니다. '새로운 기능'은 브라우저 코드 또는 아키텍처의 변경사항 또는 추가사항입니다. 새로운 JavaScript API, Blink 코드의 상당한 성능 개선 또는 브라우저의 모양이나 기능에 대한 기타 변경사항일 수 있습니다.
개방적이고 협업적인 프로세스
Chromium은 수천 명의 기여자가 참여하는 크고 복잡한 프로젝트입니다. Chromium이 변경될 때마다 각 마일스톤은 더 넓은 웹 생태계에 디자인 및 구현에 관해 의견을 제시할 기회를 제공합니다.
가능한 경우 새로운 기능은 웹 플랫폼 전반에서 상호 운용이 가능해야 하며 하나의 브라우저에서만 구현되지 않아야 합니다. 웹 개발자는 브라우저가 예상대로 작동하지 않거나 여러 브라우저와 플랫폼에 대해 서로 다른 코드를 작성해야 하는 경우를 원하지 않습니다. Blink 인텐트는 변경 프로세스를 구조화하고 규제하여 변경사항을 더 예측 가능하고 놀라움이 덜하도록 지원하며 이는 웹 개발자에게 유용합니다.
사용자의 경우 브라우저 공급업체는 변경사항으로 인해 웹사이트가 작동 중지되지 않도록 주의해야 합니다. 사이트 소유자는 웹사이트 유지보수를 중단하는 경우가 많습니다. 일부 사이트는 수십 년 동안 업데이트되지 않았습니다. 브라우저 공급업체는 손상을 일으킬 수 있는 변경사항을 적용할 때 이 점을 고려해야 합니다.
아이디어에서 제안까지
웹 플랫폼의 변경사항 및 업데이트 제안은 사용자, 비즈니스, 브라우저 엔지니어, 웹 개발자 및 기타 이해관계자와의 상담 등 연구에서 비롯됩니다. 이 연구를 통해 Chrome팀은 플랫폼에서 누락된 항목 또는 변경해야 할 항목을 파악할 수 있습니다. 처음에 웹 플랫폼의 변경사항 또는 새로운 기능에 대한 제안은 페이지의 단어일 뿐입니다. 엔지니어는 동료의 의견과 토론을 위해 문서를 공유합니다.
예: FedCM
Federated Credential Management (FedCM)는 제휴 ID라고 하는 사용자 가입 및 로그인에 개인 정보 보호 중심의 사용자 친화적인 접근 방식을 제공하는 API입니다. 예를 들어 Google 계정으로 로그인 및 기타 소셜 로그인에 적용됩니다.
브라우저 API를 만들려면 먼저 공개 토론을 위한 제안을 준비해야 합니다. FedCM의 제안은 GitHub에 설명 으로 게시되었습니다. 설명 저장소에서 GitHub 문제를 만들어 기능 디자인에 관해 질문하거나 의견을 제시할 수 있습니다. 의견에는 추가 사용 사례, 제약 조건, 개선 아이디어 또는 지원 약속에 관한 개발자 설명이 포함될 수 있습니다.
제안이 W3C와 같은 표준화 기관에서 채택되면 이해관계자는 W3C Working Groups와 같은 웹 표준 그룹에서 토론에 참여하고 프레젠테이션을 시청할 수 있습니다.
Blink 인텐트: 마일스톤 및 진행 상황
엔지니어가 새로운 기능 또는 Blink 렌더링 엔진의 변경사항을 작업하는 각 마일스톤에서 blink-dev 토론 그룹에 기능 구현을 향한 다음 단계로 이동할 계획임을 설명하는 게시물을 게시합니다. 이러한 게시물을 '인텐트'라고 합니다. 누구나 blink-dev 그룹을 구독하여 Blink의 새로운 기능 진행 상황을 알리거나 업데이트를 위해 개별 기능을 구독할 수 있습니다.
프로토타입 인텐트
이 시점에서 Chromium 엔지니어는 기능을 구현하기 시작할 수 있습니다. 즉, 기능의 프로토타입 기능이 개발자 테스트를 위해 기능 플래그 뒤에 처음에는 Chrome Canary에서, 그런 다음 다른 출시 채널에서 제공될 수 있습니다. 모든 사용자는 chrome://flags 페이지에서 플래그를 설정하여 브라우저에서 기능을 활성화하고 테스트할 수 있습니다.
하지만 chrome://flags 페이지에서 모든 플래그를 설정할 수 있는 것은 아닙니다. 더 세밀하게 제어하려면 명령줄 플래그를 사용하여 터미널에서 Chrome을 실행하면 됩니다. 일부 새로운 기능은 Chrome Canary에서 테스트를 위해 기능이 제공될 때까지 사용할 수 없다는 점에 유의하세요. 하지만 이는 매우 드문 경우입니다. 일부 기능 에는 자체 플래그가 없지만 experimental-web-platform-features 플래그가 사용 설정된 경우 사용할 수 있습니다. 일반적으로 구현하는 데 최대 3~6개월이 걸리는 '작은' 기능의 경우에 해당합니다.
프로토타입에 관한 의견 수집
새로운 기능의 프로토타입 제작이 시작되면 Chromium 엔지니어는 토론과 초기 실험을 초대합니다. 이 시점의 의견은 제안을 검증하고 반복하는 데 매우 중요합니다. Chromium 버그는 Chrome의 구현에 관해 의견을 제시할 수 있는 곳입니다.
실험 인텐트: 실제 테스트
blink-dev의 실험 인텐트 게시물은 Chrome 엔지니어가 오리진 트라이얼 실행을 요청하려는 경우 선택적 다음 단계입니다.
오리진 트라이얼은 새로운 웹 플랫폼 기능 또는 실험용 웹 플랫폼 기능을 테스트하는 방법입니다. 기능의 오리진 트라이얼에 등록한 다음 트라이얼 토큰을 받습니다. 토큰을 제공하는 모든 페이지에서 기능이 활성화됩니다.
Blink API 소유자의 승인
기능 구현을 향한 진행 상황을 진행하려면 Blink API 소유자가 LGTM이라고 하는 '좋아 보입니다' 게시물로 인텐트에 답장하여 승인해야 합니다.
Blink API 소유자는 웹 플랫폼 및 API에 대한 경험이 풍부하고 Blink의 사명과 가치에 대한 약속을 지키는 것으로 Blink 커뮤니티에서 동의한 소규모의 Chromium 기여자 그룹입니다. API 소유자는 기능이 구현을 향해 진행되도록 승인 (또는 승인하지 않음)할 뿐만 아니라 Blink 인텐트 프로세스 자체를 감독합니다.
실험 인텐트는 API 소유자로부터 하나 이상의 LGTM을 받아야 합니다.
오리진 트라이얼의 가치
개발자는 기능의 오리진 트라이얼에 가입한 다음 사용자가 기능을 활성화하기 위해 조치를 취할 필요 없이 실제 사용자와 함께 실제 환경에서 프로덕션에서 기능을 테스트할 수 있습니다. 개발자는 테스트 결과를 공유할 수 있으며 이는 기능을 반복하고 발전시키는 데 도움이 되는 유용한 통찰력과 데이터를 제공합니다.
제공 인텐트: 최종 마일스톤
제공 인텐트는 이제 기능이 완료되었으며 플래그 또는 트라이얼 토큰 없이 Chrome 안정화 버전의 모든 사용자가 정식 버전으로 사용할 수 있도록 구현할 준비가 되었음을 나타냅니다. 구현을 진행하려면 제공 인텐트가 API 소유자로부터 3개 의 LGTM을 받아야 합니다.
새로운 기능 출시
승인되면 기능이 예정된 출시에 병합된 후 Chrome 출시 채널을 통해 진행됩니다. 새로운 기능의 테스트 및 구현은 특별한 주의를 기울여 처리되는 경우가 많습니다. 일부 기능은 점진적으로 더 많은 사용자에게 출시됩니다. 예기치 않은 부작용이 있는 경우 기능을 롤백하고 재작업할 수도 있습니다.
지원 중단 및 삭제 관리
Blink 인텐트에는 두 가지 다른 유형이 있습니다.
- 지원 중단 인텐트
- 삭제 인텐트
약간 슬프게 들릴 수도 있지만 실제로 Blink 개발의 성공에 매우 중요합니다.
지원 중단 인텐트 는 엔지니어가 기능이 지원 중단될 예정임을 개발자에게 경고하기 시작하려는 경우 게시됩니다. 예를 들어 Chrome DevTools 콘솔에서 지원 중단에 관한 지원 및 정보를 제공합니다.
삭제 인텐트 는 엔지니어가 코드를 기본적으로 비활성화하려는 경우 게시됩니다.
지원 중단 및 삭제의 중요성
지원 중단과 삭제는 모두 웹 플랫폼의 상태에 매우 중요합니다. 이를 통해 Chrome은 최종 사용자 또는 웹 개발자에게 잘 작동하지 않는 기능을 삭제하고 코드베이스의 복잡성을 줄일 수 있습니다. 예를 들어 AppCache의 디자인 문제 는 안정화된 브라우저의 프로덕션 사이트에서 사용된 후에 발견되었으며 API는 결국 삭제되었습니다. 지원 중단 및 삭제는 잠재적인 공격 벡터를 줄여 Chrome을 안전하게 유지하는 데도 도움이 됩니다.
모든 Blink 인텐트와 마찬가지로 Chrome팀은 신중하게 결정에 접근하기 위해 최선을 다합니다. 진행하기 전에 기능 사용률 및 기타 데이터를 검토합니다. 기능 삭제 기준은 실제로 매우 높으며 기능은 매우 적은 비율의 사용자가 사용하고 더 나은 대안이 있는 경우에만 삭제됩니다.
Blink 인텐트의 최신 소식 확인
Chrome 상태에서 기능의 진행 상황을 추적할 수 있습니다. 여기에서 업데이트를 구독하고, 버그를 신고하고, 기타 리소스를 찾을 수 있습니다.
새로운 기능을 추적하려면 Chromium 블로그를 팔로우하고 blink-dev 토론 그룹에 가입하세요. 그룹에서 많은 이메일이 전송될 수 있으므로 단일 인텐트를 구독하는 것이 좋습니다. Blink 인텐트의 스프레드시트를 볼 수 있습니다.
Blink 인텐트를 정말 좋아한다면 자동화된 Blink 인텐트 추적기 서비스를 기반으로 빌드할 수도 있습니다.
다음 단계
Chrome 출시 채널이란 무엇인가요?를 참고하세요.