2020. 3. 17. 18:48ㆍ공통
소프트웨어 빌드(Software build)
프로그래머가 작성한 소스 코드파일을 모두 취합하여 컴파일한 다음, 이진(Binary) 또는 실행할 수 있는 프로그램 등 빌드 인공물(artifact)를 만들어 소프트웨어 릴리즈를 위한 응용 프로그램을 만드는 과정입니다.
빌드 과정(scmquest참조)
- Fetching : 소스 제어 저장소에서 코드를 가져옴
- Compile : 코드를 컴파일하고 종속성/모듈을 확인
- Unit Test : 자동화된 단위 테스트 실행
- Link : 라이브러리, 코드, 파일 등을 그에 따라 연결
- Store : 성공적으로 통과되면, 빌드 아티팩트를 만들어 저장
- Archive : 빌드 로그 보관
- Send : 알림 메일발송
빌드 형식
전체 빌드 (Full Build)
처음부터 빌드를 수행합니다. 프로젝트의 모든 리수스를 빌드 서버/툴에서 본 적이 없는 것처럼 처리합니다.
전체 빌드는 항상 빈 작업 영역에서 시작됩니다. 전체 프로젝트를 입력으로 갖고, 의존성을 파악하고, 프로젝트의 모든 소스 파일을 컴파일하고, 그에 따라 모든 부분을 순서대로 구축한 다음 최종 출력으로 빌드 아티팩트에 조립합니다.
필자가 사용하는 X-Code에서 빌드 이력이있다는 가정하고, Clean Build Folder 후, Build하는 것도 이에 해당한다고 생각합니다.
증분 빌드 (Incremental Build)
빌드 서버/툴에 의해 내부적으로 유지되는 "마지막 빌드 상태"를 사용하여 마지막 빌드 이후 프로젝트의 변경에 따라 최적화된 빌드를 수행합니다. 모든 소스파일을 확인하고 비교하며, 타겟이 마지막으로 구축된 후 종속성이 수정된 경우, 대상을 다시 만들고 그렇지 않으면 이전 빌드에서 나온 파일을 재사용합니다. 필요한 것만 재빌드하기 때문에 대개 전체 빌드보다 훨씬 빠르고 리소스를 적게 사용합니다.
빌드 트리거(Build Trigger)
수동 빌드 트리거(Manual Build Trigger)
가장 일반적인 빌드 트리거입니다. 코드/변경 준비가 완료되면 빌드툴을 사용하여 빌드 서버로 이동하여 빌드를 트리거할 수 있습니다.
예정된 빌드 트리거(Scheduled Build Trigger)
특정 시간 또는 이벤트가 발생할 때 빌드를 실행하도록 구성됩니다. 이 트리거는 소스 변경이 발생했는지 여부에 관계없이 빌드를 강제하도록 구성할 수 있습니다. 그것의 가장 좋은 예 중 하나는 야간에 전체빌드를 하도록 지정하는 것입니다.
소스 코드 저장소 트리거(Source Code Repository Build Trigger)
저장소에서 소스 코드 변경이 발생할 때마다 빌드를 시작합니다. 개발자가 버전 제어 시스템에 변경 사항을 범하면 이트리거가 시작됩니다. 단일 파일이 변경되거나 특정 파일이 수정/확인될 때 빌드를 트리거할지 여부를 사용자 정의할 수 있습니다.
후처리 빌드 트리거(Post-Process Build Trigger)
관련 이벤트에 대한 청취를 트리거합니다. 이벤트가 탐지되면 다른 이벤트 또는 업스트림(upstream)/다운스트림(downstream) 빌드를 트리거 할 수 있습니다.
'공통' 카테고리의 다른 글
[공통]메모리 구조 (0) | 2021.05.20 |
---|---|
[공통] Process, Thread란 (0) | 2020.03.12 |