빌드 기본사항

문제 신고 소스 보기

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

이 섹션에서는 Bazel을 만들 때 사용한 디자인 결정을 포함하여 시스템 빌드 및 빌드의 역사와 기본사항에 대해 설명합니다. Bazel, Buck, Pants와 같은 아티팩트 기반 빌드 시스템에 익숙한 경우 이 섹션을 건너뛸 수 있지만 아티팩트 기반 빌드 시스템이 뛰어난 확장성을 지원하는 이유를 이해하는 데 도움이 되는 개요입니다.

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

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

  • 작업 기반 빌드 시스템

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

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

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

  • 분산 빌드

    이 페이지에서는 배포된 빌드 또는 로컬 머신 외부에서 실행되는 빌드에 대해 설명합니다. 이를 위해서는 리소스를 공유하고 결과를 빌드하기 위한 더 강력한 인프라가 필요합니다. 바로 이 지점에서 진정한 기술이 발생합니다.

  • 종속 항목 관리

    이 페이지에서는 종속 항목의 대규모 복잡성과 이러한 정보 표시를 해결하기 위한 전략을 설명합니다.