크로미움(Chromium) 기반의 Brave 브라우저 빌드 환경 구축

by DD
3개월 전
조회수 22

Brave는 크로미움(Chromium) 기반의 데스크톱 브라우저를 빌드하기 위한 도구들을 제공함

macOS, Windows, Linux 환경에서 브라우저를 빌드할 수 있도록 지원하며, Chromium, brave-core, adblock-rust 등의 프로젝트를 포함함

npm, git, depot_tools 등을 사용하여 소스 코드를 가져오고, 빌드 환경을 초기화하며, 다양한 빌드 설정을 지원함

adblock-rust를 통해 광고 차단 기능을 구현하며, 오픈소스 기여를 장려함

크로미움(Chromium) 기반 브라우저 빌드 과정

Brave 브라우저는 크로미움(Chromium)을 기반으로 하며, `depot_tools`를 사용하여 소스 코드를 가져온다. `package.json`과 `src/brave/DEPS`에 정의된 프로젝트들을 동기화하며, 특정 크로미움(Chromium) 버전을 지정한다. `brave-core`는 `src/brave`에 마운트되어 크로미움(Chromium) 코드에 대한 패치를 관리한다. 이러한 과정을 통해 Brave 브라우저의 핵심 기능을 빌드한다.

다양한 플랫폼 지원 및 빌드 설정

Brave는 macOS, Windows, Linux, iOS, Android 등 다양한 플랫폼을 지원하며, 각 플랫폼에 맞는 빌드 지침을 제공한다. `npm run build` 명령어를 사용하여 컴포넌트(Component) 빌드, 릴리즈(Release) 빌드, 정적(Static) 빌드, 디버그(Debug) 빌드 등 다양한 빌드 구성을 지원한다. 또한, `npm config`를 통해 빌드 설정을 변경할 수 있다.

Brave 브라우저 업데이트 및 동기화

Brave 브라우저는 `npm run sync` 명령어를 통해 서브 프로젝트(크로미움, brave-core)를 최신 커밋으로 업데이트한다. 이 과정에서 패치를 적용하고, gclient DEPS 의존성을 업데이트하며, 훅(hook)을 실행한다. `npm run sync -- --force` 옵션을 사용하면 강제로 업데이트를 수행할 수 있으며, 로컬 변경 사항을 stash하는 것을 권장한다.

광고 차단 엔진(adblock-rust) 통합

Brave는 광고 차단 기능을 위해 `adblock-rust`를 사용하며, 이는 Brave의 광고 차단 엔진을 구현한다. `brave/adblock-rust-ffi`를 통해 연결되며, 브라우저의 성능과 사용자 경험을 향상시킨다. 이러한 광고 차단 기능은 Brave 브라우저의 핵심적인 차별점으로, 데이터 미저장 정책(Zero-Retention Policy)과 함께 사용자 프라이버시를 보호한다.

brave / brave-browser