프로필사진

Go, Vantage point

가까운 곳을 걷지 않고 서는 먼 곳을 갈 수 없다.


Github | https://github.com/overnew/

Blog | https://everenew.tistory.com/





티스토리 뷰

반응형

 

 

 

 

빌드란?

소스코드를 실행가능한 프로그램 파일로 만드는 과정을 의미한다.

이 과정에서는 소스코드의 컴파일과 실행 관련 파일을 패키징하여 배포 가능한 형태로 만든다.

 

 

 

빌드 도구

빌드 과정을 자동화해주는 소프트웨어로 대표적인 빌드 도구가 Maven과 Gradle이다.

이 도구들은 의존 라이브러리들을 대신 다운로드 해주고 컴파일/테스트/빌드의 과정을 진행해 준다.

Maven과 Gradle을 알아보기 전에 이전에 사용되던 빌드 도구도 같이 알아보자.

 

 

 

 

Make

UNIX 계절에서 사용되는 원조 빌드 툴이다.

Makefile을 통해 빌드 작업을 통일된 구조로 제공하며 C언어 빌드에는 아직도 활용된다.

 

 

 

 

ANT

Java의 등장으로 C언어 위주의 빌드 툴인 Make를 대체하기 위해 등장했다.

간단하기 때문에 사용에는 쉽지만, 복잡한 처리를 위해서는 스크립트가 방대해짐.

자바 개발 시에 다양한 라이브러리를 관리해야 하지만, 라이브러리 의존 관계를 관리해주지 않아 어려움이 많음.

 

 

 

 

Maven

ANT의 문제점을 해결하기 위해 등장.

프로젝트 객체 모델(POM)을 도입하여 스크립트 문제 해결.

POM의 메타데이터를 통해 라이브러리 의존 관계를 자동 관리를 지원.
XML를 사용하기 때문에 POM.xml 파일을 사용해 빌드 설정을 관리.

 

단, 기능이 많아 규칙이 많고 규칙 이외의 작업은 난이도가 높다.

따라서 주로 간단하거나 명확한 구조 그리고 표준화가 요구되는 프로젝트에 적합하다.

 

 

 

 

 

Gradle

 

Maven과 같은 규칙 기반 빌드 도구이지만 XML이 아닌 스크립트 기반 도구

스크립트 언어로는 groovy를 사용.

 

groovy는 JVM에서 동작하여 java와 문법도 비슷할 뿐만 아니라, java와 호환되는 스크립트 언어이다.

spring boot를 사용하면 많이 확인할 수 있는 build.gradle이 바로 groovy로 작성되는 파일이다.

따라서 빌드 시에 해당 파일이 있는 폴더에 gradle 명령어를 통해 스크립트를 실행하게 된다.

 

gradle과 maven 두 툴 모두 다중 모듈 빌드를 병렬로 실행 가능하지만, gradle은 업데이트된 태스크에만 작업을 진행하여 빌드 시간을 단축한다. 

 

 

https://gradle.org/maven-and-gradle/ gradle 공식 사이트의 비교 영상

 

https://gradle.org/maven-and-gradle/

 

특히 동일한 입력의 경우 캐시를 사용해서 굉장히 빠른 것을 확인할 수 있다.

 

 

Gradle의 성능 뿐만 아니라 구글이 android의 공식 빌드 도구로 Gradle을 선택하기도 했고, C/C++과 python 등의 언어로 빌드 가능하기 때문에 많이 활용되는 빌드 도구이다.

 

복잡한 처리가 필요한 프로젝트의 경우 Gradle이 적합하지만 goovy 등의 학습이 필요하여 다소 러닝 커브가 있을 수 있따.

 

 

 

 

 

 


참조

https://gradle.org/maven-and-gradle/

https://starrykss.tistory.com/276

https://galid1.tistory.com/647

https://www.elancer.co.kr/blog/detail/270

 

반응형
댓글
반응형
인기글
Total
Today
Yesterday
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함