빌드 자동화 도구: Maven, Gradle (+ Make, Ant, Poetry)

Sue·2022년 2월 19일
0

Spring Boot

목록 보기
1/5

스프링부트 입문 강의를 듣다 maven, gradle에 대한 내용이 짧게 언급되었다. (요즘엔 거의 gradle을 쓰면 된다는 내용) maven은 학교 수업에서 언젠가 과제할 때 본 적 있었고 gradle은 안드로이드 스튜디오에서 쓴 적 있었다. 하지만 둘의 역할이 무엇인지, 차이점이 무엇인지 잘 몰랐기 때문에 간단하게나마 알기 위해 찾아보았다.

찾아보다가 보니, 기존에 python으로만 사이드 프로젝트 백엔드 개발을 해보았을 때 사용했던 python에서 venv, poetry 등과도 비슷하게 여겨졌다. 더해서, ant, make와도 유사한 점이 많다고 하여 각각 무엇인지 짧게 정리해보았다.


들어가며

개발자는 소프트웨어 도구를 사용하여 개발 활동을 보다 쉽고 관리 할 수 있다. 예를 들어, Sbt(Apache의 Maven 및 Ant 와 유사한 Scala 및 Java 프로젝트를 위한 오픈 소스 빌드 도구), GradleVisual Build(소프트웨어 개발자와 빌드 마스터가 소프트웨어 빌드 를 위한 자동화되고 반복 가능한 프로세스를 생성할 수 있도록 하는 Windows 용 GUI 소프트웨어)가 있다.


1. make


make는 유닉스 계열 운영 체제에서 사용되는 프로그램 빌드 도구이다.


2. Ant


Ant는 make와 비슷하지만 자바 언어에서 사용하는 자동화된 소프트웨어 빌드 도구이다.


3. Maven


Apache Ant와 Maven의 차이점은 Apache Ant는 소프트웨어 빌드 프로세스를 자동화하는 소프트웨어 도구이고 Maven은 소프트웨어 프로젝트 관리 도구라는 것이다. Maven은 소프트웨어 빌드 프로세스를 자동화하는 도구 그 이상이다. 전반적으로 Maven은 Ant보다 더 유연하다.


4. Gradle

  • 그루비(Groovy): 자바에 파이썬, 루비, 스몰토크등의 특징을 더한 동적 객체 지향 프로그래밍 언어
    Gradle은 그루비를 이용한 빌드 자동화 시스템이다.

Maven vs Gradle



5. Poetry

파이썬은 인터프리터 언어라 빌드 전 컴파일이 필요 없기 때문에 그런지 몰라도 자바의 gradle처럼 유명한 빌드 툴은 없는 것 같다. 그래도 찾아보니 Pybuilder라는 빌드 자동화 툴이 있긴 하다.
조금 다르지만 유사한 역할을 하는 도구로는, 프로젝트 의존성 관리 도구 Poetry가 유명한 것 같다. Poetry와 유사하게는 venv도 쓸 수 있지만 둘 다 써본 바로는 Poetry가 더 자동화 되어 있고 편했다.(참고: https://www.reddit.com/r/Python/comments/luc1yb/what_do_python_programmers_use_as_an_alternative/)

결론

make, Ant, Maven, Gradle은 빌드 도구이다. Poetry는 의존성 관리 도구이다. 현재 Spring 개발을 위해서 찾아본 것이기 때문에 java 빌드 도구 중 가장 성능이 좋고 많은 기능을 제공하는 gradle을 쓰면 된다는 것만 기억하자.

이 글도 참고해보면 좋을 것 같다.

0개의 댓글