본문 바로가기

Extras

Bazel

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