BazelCon 2022는 11월 16~17일에 뉴욕과 온라인에서 개최됩니다.
지금 등록하기

Bazel 소개

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

Bazel은 Make, Maven 및 Gradle과 유사한 오픈소스 빌드 및 테스트 도구입니다. 사람이 읽을 수 있는 고급 빌드 언어를 사용합니다. Bazel은 여러 언어로 프로젝트를 지원하고 여러 플랫폼에 대한 출력을 빌드합니다. Bazel은 여러 저장소 및 다수의 사용자를 아우르는 대규모 코드베이스를 지원합니다.

이점

Bazel은 다음과 같은 이점을 제공합니다.

  • 높은 수준의 빌드 언어. Bazel은 사람이 읽을 수 있는 추상적 언어를 사용하여 프로젝트의 빌드 속성을 높은 시맨틱스 수준에서 설명합니다. Bazel은 다른 도구와 달리개념 라이브러리, 바이너리, 스크립트, 데이터 세트의 전체 집합을 제공하여 컴파일러 및 링커와 같은 도구에 대한 개별 호출을 작성하는 복잡성을 방지할 수 있습니다.

  • Bazel은 빠르고 안정적입니다. Bazel은 이전에 수행한 모든 작업을 캐시하고 파일 콘텐츠와 빌드 명령어의 변경사항을 추적합니다. 그러면 Bazel은 무언가를 다시 빌드해야 할 때를 확인하고 그만 다시 빌드합니다. 빌드 속도를 더욱 높이려면 병렬 및 증분 방식으로 빌드하도록 프로젝트를 설정하면 됩니다.

  • Bazel은 멀티 플랫폼입니다. Bazel은 Linux, macOS, Windows에서 실행됩니다. Bazel은 데스크톱, 서버, 모바일을 포함한 여러 플랫폼에서 동일한 프로젝트에서 바이너리와 배포 가능한 패키지를 빌드할 수 있습니다.

  • Bazel 배율 Bazel은 민첩성을 유지하면서 10만 개 이상의 소스 파일로 빌드를 처리합니다. 무수히 많은 저장소와 수만 명의 사용자와 함께 사용할 수 있습니다.

  • Bazel이 확장 가능합니다. 많은 언어가 지원되며 다른 모든 언어 또는 프레임워크를 지원하도록 Bazel을 확장할 수 있습니다.

Bazel 사용

Bazel에서 프로젝트를 빌드 또는 테스트하려면 일반적으로 다음을 수행합니다.

  1. Bazel을 설정합니다. Bazel을 설치합니다.

  2. Bazel이 빌드 입력 및 BUILD 파일을 찾고 빌드 출력을 저장하는 디렉터리인 프로젝트 작업공간을 설정합니다.

  3. Bazel에 빌드할 항목과 빌드 방법을 알려주는 BUILD 파일을 작성합니다.

    도메인별 언어인 Starlark를 사용하여 빌드 타겟을 선언하여 BUILD 파일을 작성합니다. 여기에서 예시를 참조하세요.

    빌드 대상은 Bazel에서 빌드할 입력 아티팩트 집합과 종속 항목, Bazel이 빌드하는 데 사용하는 빌드 규칙 및 빌드 규칙을 구성하는 옵션을 지정합니다.

    빌드 규칙은 컴파일러, 링커와 같은 Bazel에서 사용할 빌드 도구를 구성합니다. Bazel은 지원되는 플랫폼에서 지원되는 언어로 가장 일반적인 아티팩트 유형을 다루는 여러 빌드 규칙과 함께 제공됩니다.

  4. 명령줄에서 Bazel을 실행합니다. Bazel은 출력을 작업공간 내에 배치합니다.

빌드 외에도 Bazel을 사용하여 테스트를 실행하고 빌드를 쿼리하여 코드의 종속 항목을 추적할 수 있습니다.

Bazel 빌드 프로세스

Bazel은 빌드 또는 테스트를 실행할 때 다음 작업을 실행합니다.

  1. 대상과 관련된 BUILD 파일을 로드합니다.

  2. 입력 및 종속 항목분석하고 지정된 빌드 규칙을 적용하며 작업 그래프를 생성합니다.

  3. 최종 빌드 출력이 생성될 때까지 입력에 대한 빌드 작업을 실행합니다.

이전의 모든 빌드 작업이 캐시되므로 Bazel은 캐시된 아티팩트를 식별 및 재사용하고 변경된 항목만 다시 빌드하거나 다시 테스트할 수 있습니다. 정확성을 더 강화하기 위해 Bazel을 설정하여 샌드박스를 통해 밀폐하여 빌드와 테스트를 실행하도록 할 수 있으며 편향을 최소화하고 재현 가능성을 극대화할 수 있습니다.

작업 그래프

작업 그래프는 빌드 아티팩트, 아티팩트 간 관계, Bazel에서 수행할 빌드 작업을 나타냅니다. 이 그래프 덕분에 Bazel은 파일 콘텐츠의 변경사항뿐 아니라 빌드 또는 테스트 명령어와 같은 작업의 변경사항을 추적할 수 있으며 이전에 작업한 빌드 작업도 확인할 수 있습니다. 완료되었습니다. 또한 그래프를 사용하면 코드에서 쉽게 종속 항목을 추적할 수 있습니다.

시작 가이드

Bazel을 시작하려면 시작하기를 참조하거나 Bazel 가이드로 바로 이동하세요.