블로그로 돌아가기

Chromium이란 무엇인가: 브라우저의 토대와 그 경계

Chromium은 오픈소스 브라우저 프로젝트이자 Chrome, Edge, Brave, Opera 같은 브라우저의 공통 토대지만, 그 자체가 일반 사용자를 위한 완성품은 아니다. 이 글은 프로젝트와 배포판의 관계, 그리고 Chromium 기반이라는 말이 확인해 주는 것과 확인해 주지 않는 것을 설명한다.

브라우저를 설치할 때 Edge, Brave, Opera, Vivaldi, Chrome이 같은 기반 코드를 쓴다는 사실을 알아차리는 사람은 거의 없다. 이 코드의 이름이 Chromium이며, 페이지를 어떻게 렌더링하고 스크립트를 어떻게 실행하며 확장 기능이 어떤 인터페이스를 호출할 수 있는지를 결정한다.

프로젝트이지 제품이 아니다

Chromium 프로젝트의 브라우저 빌드에서 사용자용 제품까지의 계층

Chromium은 오픈소스 프로젝트로, 2008년에 Chrome과 함께 오픈소스로 공개되었으며 렌더링 엔진 Blink, JavaScript 엔진 V8, 그리고 브라우저 인터페이스의 전체 코드를 포함한다. Google이 주도해 유지보수하지만 코드는 공개되어 있어 누구나 가져다 자신만의 배포판을 만들 수 있다.

핵심적인 차이는 이것이다. Chromium 자체는 일반 사용자를 위한 완성품이 아니다. 공식적으로 제공되는 것은 지속적으로 빌드된 스냅샷이며, 자동 업데이터도, 계정 체계도, 브랜드와 서비스 지원도 없다. Chromium을 내려받은 많은 사람이 업데이트는 직접 해야 한다는 것을 알게 되는 이유도 여기에 있다.

모두가 이것을 쓰는 이유

브라우저 엔진을 유지하는 비용은 터무니없이 높다. 웹 표준을 따라가고, 보안 취약점을 고치고, 다양한 운영체제와 새 하드웨어에 맞추려면 장기적으로 투자하는 팀이 필요하다. 처음부터 직접 만드는 것은 비현실적이고, Chromium에서 갈라져 나와 고치는 편이 훨씬 저렴하며 확장 기능 생태계와 디버깅 도구도 그대로 물려받을 수 있다.

그래서 길이 갈렸다. Chrome은 Google 자체 제품이고, Edge는 2020년에 자체 엔진을 포기하고 Chromium으로 바꿨으며, Opera는 그보다 먼저 이 길을 택했다. Brave, Vivaldi, Samsung Internet도 이 토대 위에서 차별화한다. Android의 WebView와 데스크톱의 Electron 앱도 마찬가지로 Chromium을 쓴다. 반면 Firefox는 Gecko, Safari는 WebKit을 쓰며 다른 기술 노선에 있다.

Chrome과의 차이

같은 뿌리라고 해서 같은 것이 아니다. Chrome은 Chromium 위에 자동 업데이터, 충돌 및 사용 통계, Google 계정 동기화를 더했고, 라이선스를 사서 H.264, AAC 같은 독점 코덱과 Widevine DRM을 넣었기 때문에 스트리밍 사이트가 정상적으로 재생된다. Chromium의 공식 빌드에는 보통 이런 것이 빠져 있어서 동영상 페이지가 열려도 재생되지 않을 수 있고, 로그인과 동기화도 찾을 수 없다.

프라이버시 기본값도 다르다. Chromium은 텔레메트리를 되돌려 보내지 않지만, Chrome에 있는 프라이버시 설정도 제공하지 않는다. 하위 브라우저들은 각자 판단이 달라서 Brave는 광고와 추적 스크립트를 기본으로 차단하고, Edge는 계정 체계를 Microsoft의 것으로 바꿨다. 이런 차이는 어느 것도 엔진 안에 있지 않다.

또 하나 자주 간과되는 차이는 버전 진행 속도다. 하위 업체와 상위 프로젝트 사이에는 시간차가 있고, 어떤 버전 번호는 아주 바짝 따라가는 것처럼 보이지만 실제 패치는 따로 병합된다. 특정 브라우저에서만 나타나는 문제를 만나면 먼저 버전을 확인하고, 그다음에 엔진을 의심해야 한다.

호환성과 자동화가 이것을 신경 쓰는 이유

프런트엔드 개발에서 어떤 페이지가 Chrome에서는 정상이고 다른 브라우저에서 오류가 난다면, 첫 단계는 엔진 문제인지 업체의 변경인지 판단하는 것이다. 모두 Chromium 위에 있다면 CSS와 JavaScript의 동작은 대체로 예측 가능하고, 차이는 대개 버전의 신구와 업체 패치에서 나온다.

자동화도 같은 이점을 얻는다. 디버깅 프로토콜이 같다는 것은 Chromium용으로 작성한 스크립트가 하위 브라우저에서도 흔히 그대로 실행된다는 뜻이며, DevTools 인터페이스와 헤드리스 모드 호출 방식도 일치한다. 문제는 버전이다. 하위 업체가 상위를 따라가는 속도가 제각각이라 몇 버전 뒤처지기도 하고, 같은 스크립트가 구버전에서는 돌아가고 신버전에서는 오류가 나거나, A 브라우저에서는 되고 B 브라우저에서는 안 되기도 한다. 그래서 최신을 좇기보다 버전을 고정하는 것이 더 중요하다.

장기간 병렬로 돌려야 하는 자동화 작업은 보통 Chromium 버전을 고정하고 독립된 실행 환경과 함께 사용한다. 다중 계정 격리 도구도 대부분 Chromium을 토대로 삼는데, 오픈소스이고 버전을 고정할 수 있으며 확장과 자동화 인터페이스가 완비되어 있기 때문이다. PurpleMark도 이런 종류의 도구로, 계정마다 독립된 브라우저 환경을 제공하고 프로필, 네트워크 출구, 기기 특성을 분리한다.

이 말이 설명해 주는 것과 그렇지 않은 것

어떤 브라우저가 Chromium 기반이라고 할 때 확인되는 것은 렌더링 엔진과 스크립트 엔진이 같고, 웹페이지 동작이 비슷하며, 확장 인터페이스와 디버깅 프로토콜이 대체로 호환되고, 웹 호환성 위험이 낮다는 점이다.

확인되지 않는 것은 긴 목록이다. 프라이버시 기본값, 텔레메트리 수집 여부, 동기화 기능, 업데이트 채널, 차단이나 가속 기능이 추가로 들어갔는지, 상위보다 몇 버전 뒤처졌는지 등이다. 안전한지 여부를 이것으로 판단하는 것은 더더욱 불가능하다. Chromium이 여는 것은 코드이지 기본 설정이 아니다.

Chromium 기반이라는 이유만으로 같은 브라우저로 여기는 것이 가장 흔한 오해다. 일상 경험을 실제로 좌우하는 것은 각 업체가 이 토대 위에 무엇을 더하고 무엇을 빼며 얼마나 자주 상위와 동기화하는가이다.