빌드 기본사항

문제 신고 소스 보기

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

이 섹션에서는 Bazel을 만드는 데 고려된 설계 결정을 포함하여 빌드 및 빌드 시스템의 몇 가지 역사와 기본사항을 다룹니다. Bazel, Buck, Pants와 같은 아티팩트 기반 빌드 시스템에 익숙한 경우 이 섹션을 건너뛸 수 있지만 아티팩트 기반 빌드 시스템이 확장성을 높이는 데 뛰어난 이유를 이해하면 도움이 됩니다.

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

    빌드 시스템을 처음 사용한다면 여기에서 시작하세요. 이 페이지에서는 빌드 시스템을 사용해야 하는 이유와 조직이 소수의 개발자 이상으로 확장하기 시작할 때 컴파일러 및 빌드 스크립트가 최선의 선택이 되지 않는 이유를 설명합니다.

  • 작업 기반 빌드 시스템

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

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

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

  • 분산 빌드

    이 페이지에서는 분산 빌드 또는 로컬 머신 외부에서 실행되는 빌드를 설명합니다. 이를 위해서는 리소스를 공유하고 결과를 빌드하기 위해 더 강력한 인프라가 필요합니다. 이 과정에서 진정한 마법사가 필요합니다.

  • 종속 항목 관리

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