What is Bazel?
- C언어만 있었을 때는 하나의 언어로 통일된 execution file이 있었음
- 다른 고급 프로그래밍 언어(ex. java)가 생기면서 서로 다른 언어라서 다른 플랫폼에서 적용되지 않는 이슈가 생김
- bazel은 서로 다른 언어들을 하나의 RPC(Remote Procedute call)로 만들어 하나의 실행 파일을 만들어줌
- 자동으로 빌드 그래프를 생성하여 의존성 관리를 자동화 -> 빌드 시스템이 어떤 파일을 빌드해야 하는지 자동으로 결정하고 빌드 시간을 단축시킬 수 있음
장점
1. high level build language
- 사람이 읽을 수 있는 언어를 사용하여 프로젝트의 빌드 속성을 높은 의미 수준에서 설명
- library, binary, script, dataset의 개념으로 작동
- compiler와 linker같은 도구의 개별 호출의 복잡성에서 자유로움
2. fast and reliable
- 이전에 수행한 모든 작업을 캐시하고 파일 콘텐츠 및 빌드 명령의 변경 사항을 추적
- 재구축해야 하는 시기를 알고 재구축을 함
- 빌드 속도를 높이기 위해 고도로 병렬화되고 증분된 방식으로 프로젝트를 설정할 수 있음
3. multi-platform
- Linux, OS, Windows에서 실행 가능
- 동일한 프로젝트에서 데스크톱, 서버 및 모바일을 포함한 여러 플랫폼 용 바이너리 및 배포 가능한 패키지를 빌드할 수 있음
4. Bazel scales
- 10만개 이상의 소스 파일로 빌드를 처리하면서 빠른 속도를 유지
5. Extensible
- 확장 가능성; 많은 언어가 지원되며 다른 언어/프레임워크를 지원하도록 확장할 수 있음
Tutorial
https://www.dak.so/bazel/startup
[Bazel 튜토리얼] Bazel 시작하기
Bazel을 시작하는 방법은 다음과 같습니다.
www.dak.so
https://www.dak.so/bazel/organize
[Bazel 튜토리얼] Bazel 프로젝트 구성해보기: WORKSPACE & BUILD
WORKSPACE 정의 및 사용법
www.dak.so
ETC
1. Build란?
- 소스코드 파일을 실행 가능한 소프트웨어 산출물로 변환하는 과정
- 이 과정에서 소스 코드 파일을 컴파일하고 링크를 거쳐 실행 파일이나 라이브러리 파일 등을 생성
2. Compile이란?
- 소스 코드를 바이너리 코드로 변환하는 과정
- 프로그래밍 언어로 작성된 소스코드를 컴퓨터가 이해할 수 있는 기계어로 번역
Reference
https://butter-shower.tistory.com/232
Bazel이란?
최근은 아니지만.. 최근인가? 최근에 TFLite를 안드로이드에서 실행해야하는 상황이 생겼는데요, 그때 사용해야하는 툴 중에서 이 Bazel이라는 것을 알게되어 한번 정리해보려고 합니다!! ☺️ 빌
butter-shower.tistory.com
https://www.dak.so/bazel/what-is
Bazel이 그렇게 좋다는데 왜 좋은걸까?
소개
www.dak.so
https://statuscode.tistory.com/4
빌드(Build)와 컴파일(Compile)의 차이점과 이해하기 쉬운 예시 코드
프로그래밍에서 빌드와 컴파일은 중요한 개념 중 하나입니다. 이 두 용어는 비슷한 기능을 수행하지만 다른 의미를 갖고 있습니다. 머리글 빌드(Build)와 컴파일(Compile)의 차이 목차 빌드(Build)란?
statuscode.tistory.com
'Extras' 카테고리의 다른 글
GStreamer (0) | 2024.06.11 |
---|---|
stack memory vs heap memory (0) | 2023.04.18 |