Project/국비-FinalProject

[Final Project] Maven과 Gradle의 차이점

SIKIDA 2024. 7. 25. 18:16
728x90

그린컴퓨터아카데미 -  Final Project

팀명 : 미정

주제 : 소개팅 사이트 (Heart Link)

팀장 : Eunsik

팀원 : Jaein, Ahtae, Jongsun


파이널 프로젝트를 시작하기에 앞서, 세미 프로젝트에서는 Maven을 사용했습니다. 그 이유는 스프링부트가 아닌 서블릿을 활용했기 때문입니다. 수업에서는 이클립스를 사용했지만, 현업에서는 인텔리제이를 자주 사용하므로 세미 프로젝트 이후에는 스프링프레임워크를 공부를 했지만 더 나아가 스프링부트를 사용하기로 했습니다.. 그래서 이번 프로젝트에서는 Maven 대신 Gradle을 사용하기로 결정했습니다. 설정 및 계획이 끝나기전에 Maven과 Gradle에 대해 공부를 진행해 정리를 해보겠습니다!

 

빌드 관리 도구(Build Tool) 란?

Maven 과 Gradle은 모두 빌드 관리 도구입니다.
빌드 관리 도구는 빌드와 관리도구로 나누어짐.



빌드란 ? 
빌드(Build)는 소프트웨어 개발에서 소스 코드를 실행 가능한 프로그램으로 변환하는 과정을 말합니다.
이 과정에는 여러 단계가 포함될 수 있습니다.


메이븐 Maven 이란?

Maven은 Java기반의 프로젝트 관리 및 빌드 자동화 도구이며,
Ant의 대안으로 만들어짐.

• 메이븐의 중요 기능
    프로젝트 빌드 관리
    의존성 관리
    다양한 플러그인 지원
    표준화된 프로젝트 구조
    빌드 라이프사이클

• 메이븐의 구성 요소
   POM (Project Object Model)
   리포지토리 
   플러그인

Maven의 주요 이점
자동화: 빌드와 의존성 관리를 자동으로 처리하여 개발자의 작업 부담을 줄입니다.
일관성: 표준화된 프로젝트 구조와 빌드 라이프사이클을 통해 일관된 개발 환경을 제공합니다.
의존성 해결: 중앙 리포지토리에서 라이브러리를 자동으로 다운로드하여 의존성 문제를 줄입니다.

 

 

 

Gradle 이란?

Gradle은 현대적인 빌드 자동화 도구로, 다양한 프로그래밍 언어와 플랫폼을 지원합니다. 주로 Java 프로젝트에서 사용되지만, Kotlin, Groovy, Scala, C/C++, Python 등 다양한 언어와 환경에서도 활용할 수 있습니다. Gradle은 빠르고 유연하며, 강력한 기능을 제공하여 복잡한 빌드 프로세스를 간소화하고 자동화하는 데 도움을 줍니다.

 

• Gradle 의 중요 기능
    성능
    유연한 빌드 스크립트
    다양한 언어 및 플랫폼 지원
    의존성 관리
    플러그인 기반 아키텍처
    멀티 프로젝트 빌드 지원

• Gradle 의 중요 구성 요소
   빌드 스크립트
   태스크
   의존성
   플러그인
                                                                        Maven vs. Gradle 주요 차이점
1. 구성 방식
     - Maven: XML 기반의 pom.xml 파일을 사용하여 프로젝트 설정을 정의합니다. XML 파일은 설정이 명확하지만 길어질 수 있습니다.
     - Gradle: Groovy 또는 Kotlin DSL을 사용하는 build.gradle 파일을 통해 구성합니다. 코드 기반의 구성은 더 직관 적이고 읽기 쉽습니다. 
2. 성능
     - Maven: 전체 빌드가 필요할 때마다 모든 작업을 실행합니다.
     - Gradle: 증분 빌드, 병렬 실행, 캐시 기능을 통해 빌드 속도를 크게 향상시킬 수 있습니다. 변경된 부분만 처리 하여 빌드 시간을 단축합니다.
3. 유연성
     - Maven: 표준화된 빌드 프로세스를 제공하지만, 구성 변경이 어려울 수 있습니다.
     - Gradle: 빌드 스크립트가 유연하여 복잡한 빌드 요구 사항을 처리할 수 있으며, 커스터마이징이 용이합니다.
4. 의존성 관리
     - Maven: 중앙 저장소에서 의존성을 관리하며, XML 설정을 통해 의존성을 정의합니다.
     - Gradle: Maven 중앙 저장소와 함께 다른 저장소를 지원하며, DSL을 통해
        의존성 정의가 더 간결하고 유연합니다.
5. 플러그인 시스템
    - Maven: 플러그인 시스템이 있지만, 설정이 상대적으로 제한적일 수 있습니다.
    - Gradle: 플러그인 시스템이 강력하며, 다양한 서드파티 플러그인과 커스터마이징이 가능합니다.
6. 멀티 프로젝트 지원
    - Maven: 멀티 모듈 프로젝트를 지원하지만 설정이 복잡할 수 있습니다.
    - Gradle: 멀티 프로젝트 빌드를 지원하며, 구조와 의존성 관리를 쉽게 설정할 수 있습니다.

 

 

 

Maven과 Gradle의 차이점에 대해 정리하고 공부를 진행하였다!

좀더 공부를 진행해야겠다.