Chrome Finch 실험이란 무엇인가요?

게시일: 2025년 4월 3일

Chrome에서 새 기능을 출시할 때는 작동하고 규정을 준수하며 안정적인 기능을 보장하기 위해 여러 가지 견제와 균형이 필요합니다. 이러한 균형 중 하나가 Finch 실험입니다. 이름에 '실험'이 포함되어 있다고 해서 안전하지 않다고 생각하지 마세요. 오히려 그 반대입니다. Finch 출시를 사용하면 예기치 않은 문제가 발생할 경우 기능을 빠르게 사용 중지할 수 있으므로 잠재적으로 호환성 문제를 일으킬 수 있는 기능을 안전하게 추가할 수 있습니다. 이 도움말에서는 Chrome에서 일부 기능 출시를 위해 Finch를 사용하는 방법과 이유를 설명합니다.

일반적으로 Chrome에서 기능을 사용 설정한다는 것은 Chrome 내에서 불리언을 '사용 중지'에서 '사용'으로 전환하는 것을 의미합니다. 새 기능이 '출시'되면 모든 사용자의 기본 상태가 '사용'으로 변경됩니다. 다음과 같은 여러 가지 방법이 있습니다.

  • '코드에서' 기능 사용 설정: Chrome 실행 파일 자체에 기본적으로 사용 설정된 설정이 있습니다.
  • '오리진 트라이얼'로 기능 사용 설정: 오리진 트라이얼 시스템은 특정 사이트에서 모든 Chrome 사용자를 실험에 참여시켜 해당 사이트에서만 특정 기능을 사용 설정하는 방법입니다.
  • 'Finch'를 사용하여 기능 사용 설정: Chrome은 서버에서 구성 파일을 주기적으로 가져오며 이 파일에는 기능을 사용 설정하거나 사용 중지하는 안내가 포함될 수 있습니다.
  • 'Finch 킬 스위치': 'Finch'를 사용하여 사용 설정하는 것과 반대입니다. 이 경우 기능은 '코드에서' 사용 설정되지만 일반적으로 출시 후 감지된 문제로 인해 Finch 시스템을 사용하여 사용 중지됩니다.

Finch 사용 사례

이 블로그 게시물의 주제는 Finch이므로 '코드에서' 또는 '오리진 트라이얼' 사용 설정에 대해서는 더 이상 설명하지 않겠습니다. 하지만 Finch에는 여러 가지 흥미로운 사용 사례가 있습니다.

소규모 사용자 그룹에서 테스트 (A/B 테스트)

Finch는 기능 또는 최적화의 "A/B 테스트"를 수행하는 데 자주 사용됩니다. 이 경우 기능이 사용 설정된 경우와 사용 중지된 경우의 성능, 동작 또는 사용량 차이에 관한 데이터를 수집할 수 있도록 소수의 사용자에게 기능이 사용 설정됩니다.

A/B 테스트의 예는 추측 이미지 디코딩을 출시했을 때입니다. 이는 Chrome에서 페이지를 더 빠르게 로드하는 것 외에는 개발자나 사용자에게 눈에 띄지 않는 성능 개선입니다. 하지만 예기치 않은 일이 발생하지 않았는지 확인하고 성능 영향을 정확하게 측정하기 위해 Finch를 사용하여 A/B 테스트를 진행했습니다.

문제가 있는 기능 사용 중지

제품 및 사용자 환경의 안전을 위해 Chrome은 Finch 시스템을 사용하여 '코드에서' 사용 설정된 문제가 있는 기능을 원격으로 사용 중지할 수 있습니다. 예를 들어 기능이 기본적으로 사용 설정되었지만 Chrome이 안정화 상태에 도달한 후에만 문제가 발생한 경우 사용자와 비즈니스를 안전한 상태로 되돌리기 위해 기능을 빠르게 사용 중지할 방법이 필요합니다. 기능에 발견되지 않은 버그가 있거나 예기치 않은 이유로 기능이 기존 사이트를 손상시키는 경우 필요할 수 있습니다.

위험한 기능을 더 안전하게 사용 설정

Chrome에서 출시하는 대부분의 기능은 새 코드가 모든 사이트에서 작동하는지 테스트하고 확인할 수 있으므로 위험이 거의 없습니다.

하지만 알 수 없는 호환성 문제나 기타 까다로운 상호작용으로 인해 기능을 출시하는 것이 매우 위험할 수 있습니다. 이 경우 Finch 시스템을 사용하여 킬 스위치로 예약해 두는 대신 기능을 실제로 사용 설정 할 수 있습니다.

예를 들어 HTML 파서 "완화"는 이전보다 더 많은 콘텐츠를 <select> 요소 내에 배치할 수 있는 새로운 맞춤설정 가능한 선택 기능과 관련된 변경사항이었습니다. 이 변경사항이 기존 사이트를 손상시킬 수 있으므로 신중하게 출시해야 했습니다.

Finch를 사용하여 기능을 사용 설정하는 것이 Finch를 사용하여 기능을 삭제하는 것보다 더 안전할 수 있습니다. Finch는 여러 가지 이유로 100% 의 사용자에게 도달하지 않기 때문입니다. 예를 들어 일부 기업 사용자는 Finch 구성을 완전히 금지하는 정책을 가지고 있습니다. 이러한 사용자는 코드에서 기능이 사용 설정된 후 Finch를 사용하여 킬 스위치가 전환된 경우 위험에 처하게 됩니다. 이러한 사용자는 Finch 설정을 받지 못하고 기능이 계속 사용 설정되어 있기 때문입니다. 대신 Finch를 사용하여 기능을 사용 설정 하면 비상시 모든 사용자에 대해 기능을 사용 중지할 수 있습니다.

Finch 실험에 참여하고 있는지 확인하는 방법

사용자가 직접 실행하기는 어렵습니다. 권장되는 방법은 Chrome 엔지니어에게 문의하고 (일반적으로 Chromium 버그의 컨텍스트에서) "변형 목록"을 보내는 것입니다. 이는 특정 브라우저의 모든 Finch 설정에 대한 특수 코딩된 버전의 목록입니다. 다음과 같이 쉽게 가져올 수 있습니다.

  1. chrome://version으로 이동합니다.
  2. 활성 변형
  3. 해당 텍스트를 텍스트 파일 (예: variations.txt)에 붙여넣고 버그에 첨부합니다.

Chrome 엔지니어는 이 변형 목록을 사용하여 목록을 디코딩하고 브라우저에서 사용 설정 또는 사용 중지된 기능을 확인할 수 있습니다.

Finch 실험이 100% 에 도달하고 준비가 완료되면 어떻게 되나요?

실험이 '성공적'이고 해당 기능이 개발자나 사용자에게 위험을 초래하지 않는다고 확신하면 항상 '코드에서' 기능을 사용 설정합니다. 이 시점에서 Finch 구성을 종료일로 설정하여 기능이 코드에서 사용 설정된 버전 이후의 브라우저에 영향을 미치지 않도록 하는 것이 안전합니다.