빌드 기본사항

빌드 시스템은 각 개발자가 하루에 수십 또는 수백 번 상호작용할 수 있으므로 엔지니어링 조직의 가장 중요한 부분입니다. 조직의 규모에 따라 개발자의 생산성을 발휘하려면 모든 기능을 갖춘 빌드 시스템이 필요합니다. 개별 개발자의 경우 코드를 컴파일하기만 하면 되므로 빌드 시스템이 과도하게 보일 수도 있습니다. 하지만 대규모로 빌드 시스템을 사용하면 코드베이스의 다른 부분에 의존하는 경우나 라이브러리와 같은 외부 리소스를 관리하는 데 도움이 됩니다. 빌드 시스템은 코드 빌드를 시작하기 전에 필요한 모든 것을 코드에 포함할 수 있습니다. 또한 빌드 시스템은 엔지니어가 리소스와 결과를 공유할 수 있도록 설정되어 있는 경우 속도를 높여줍니다.

이 섹션에서는 Bazel을 만들기로 한 설계 결정을 비롯하여 시스템 빌드 및 빌드의 몇 가지 역사와 기본사항을 설명합니다. Bazel, Buck, Pants와 같은 아티팩트 기반 빌드 시스템에 익숙하다면 이 섹션을 건너뛸 수 있지만 아티팩트 기반 빌드 시스템이 그 이유를 이해하는 데 도움이 되는 개요입니다. 확장성을 극대화할 수 있습니다.

  • 빌드 시스템을 사용해야 하는 이유

    빌드 시스템을 사용해 본 적이 없다면 여기에서 시작하세요. 이 페이지에서는 빌드 시스템을 사용해야 하는 이유와 조직이 몇 가지 개발자 이상으로 확장되기 시작한 경우 컴파일러 및 빌드 스크립트가 최상의 선택이 아닌 이유를 설명합니다.

  • 작업 기반 빌드 시스템

    이 페이지에서는 작업 기반 빌드 시스템 (예: Make, Maven, Gradle)과 몇 가지 문제점을 설명합니다.

  • 아티팩트 기반 빌드 시스템

    이 페이지에서는 작업 기반 빌드 시스템의 고충에 대응하여 아티팩트 기반 빌드 시스템을 설명합니다.

  • 분산 빌드

    이 페이지에서는 로컬 머신 외부에서 실행되는 분산 빌드 또는 빌드를 다룹니다. 이렇게 하려면 리소스를 공유하고 결과를 구축하는 데 더 강력한 인프라가 필요합니다.

  • 종속 항목 관리

    이 페이지에서는 규모에 따른 종속 항목 복잡성과 이러한 복잡성을 해결하기 위한 전략을 설명합니다.