728x90
반응형
SMALL
1) 빌드 자동화란?
- 소스에서 컴파일→테스트→패키징→배포 산출물 생성을 스크립트/도구로 일관되게 수행하는 것.
- 목표: 재현성, 속도, 사람 의존 최소화, CI/CD 연계.
2) 공통 기능(무엇을 자동화하나)
- 의존성 관리(다운로드/잠금)
- 컴파일/트랜스파일/번들링/압축
- 단위/통합 테스트 실행 & 리포트
- 코드 품질(정적 분석, 커버리지)
- 아티팩트 생성/서명/배포(리포지토리 업로드)
- 버전·태깅·체인지로그 생성
3) 언어/플랫폼별 대표 도구
Java/JVM
- Maven: 선언적 pom.xml, 의존성/라이프사이클 표준화 (mvn clean package)
- Gradle: 스크립터블(최신은 Kotlin DSL), 속도 빠름, 대규모에 강함 (gradle build)
- Ant: 스크립트 기반 레거시(요즘은 Maven/Gradle 선호)
- (Scala) SBT, (Clojure) Leiningen
JavaScript/TypeScript
- npm / Yarn / pnpm: 패키지&스크립트 러너 (npm run build)
- Vite / Rollup / webpack / Parcel / esbuild: 번들러/빌드 툴
- 앱은 Vite/webpack, 라이브러리는 Rollup 선호 경향
.NET
- MSBuild / dotnet CLI: 공식 빌드 (dotnet build, dotnet test)
- Cake / FAKE: C#(F#)로 빌드 스크립트
Python
- setuptools / wheel / build: 패키징 (python -m build)
- Poetry: 의존+빌드 일원화 (poetry build)
- tox / nox: 멀티 환경 테스트/툴 체인 자동화
C/C++
- Make: 전통적 빌드 자동화 (make)
- CMake: 크로스 플랫폼 생성기(→ Ninja/Make)
- Ninja / Meson: 빠른 빌드 시스템
Go / Rust / Kotlin
- Go: go build, go test (툴체인 내장)
- Rust: Cargo (cargo build, cargo test)
- Kotlin/JVM: Gradle(공식); Kotlin Multiplatform도 Gradle
4) 컨테이너/클라우드 빌드
- Docker / BuildKit: 이미지 빌드(docker build), 멀티스테이지로 슬림화
- Buildpacks (pack/Cloud Native Buildpacks): 소스→이미지 자동화(도커파일 없이)
- Kaniko / Buildx: CI에서 권한/플랫폼 확장 빌드
- K8s 배포 자동화: Helm, Kustomize
5) 모바일
- Android: Gradle(Android Plugin) (./gradlew assembleRelease)
- iOS: xcodebuild, fastlane(서명/배포 자동화)
728x90
반응형
LIST