1. SpringBoot - 프로젝트(Gradle vs Maven)

한승록·2023년 11월 27일
0

스프링 부트 기초

목록 보기
1/6
post-thumbnail
Eclipse기반 단순 SpringFramework개발에서는 Maven기반 프로젝트로 개발을 진행했습니다. 하지만 SpringBoot에서는 다들 gradlebuild 를 관리하길래 두 방식의 차이를 알아봐야겠더군요.

1) Build

먼저 Maven, Gradle 모두 Build 관리 도구이기 때문에 Build에 대한 개념부터 알아보도록 하겠습니다.
소스코드 및 프로젝트에 사용된 파일 및 자원들을 JVM(Java Virtual Machine)이나 WAS(Web Application Server)등이 인식할 수 있도록 패키징하는 과정 및 결과물을 의미합니다.
즉 프로그램 언어와 원시파일을 이어주는 역할이라고 할 수 있습니다.




2) Maven

Maven은 프로젝트의 전체적 라이프 사이클을 관리하는 도구로 의존성, 라이브러리 등의 기능제공을 담당하게 됩니다.
Maven.xml 확장자 형태의 파일에서 주로 관리가 이루어집니다.
라이브러리와 자바 버전 관리는 pom.xml 에서 사용자와 상호작용하는 설정은 servletcontext.xml, DB접근 등의 백엔드 관련 설정은rootcontext.xml 에서 관리하는것 처럼 말이죠.

2-1) 장점

  • 의존성 주입 및 관리의 편리함
  • 정형화된 프로젝트 구조와 빌드 프로세스 제공
  • 다양한 라이브러리의 사용

2-2) 단점

  • 지원하지 않는 빌드 과정이 상당히 까다로움
  • 특정 플러그인 설정이 달라질 경우 중복 기술이 많아져 가독성 저하의 발생




2) Gradle

Maven이 정형화되었다는 점이 특징이라면 Gradle은 다양한 유형의 소프트웨어를 빌드 할 수 있를 정도의 유연한 오픈소스 빌드 자동화 도구입니다.
일반적으로 Groovy기반의 DSL(Domain Specific Language)을 사용하게 됩니다.

2-1) 장점

  • xml 의 틀을 벗어나 유연하게 정의가 가능
  • 설정 주입방식으로 인하여 Maven 에 비해 상속 구조의 재사용성이 뛰어남
  • 빌드와 실행 결과가 Maven 에 비해 더 빠름
  • 멀티 프로젝트 구성이 가능
    - 하나의 저장소 내에 여러기의 하위 프로젝트 구성 가능
    - 상위 프로젝트의 의존성 및 설정을 하위 프로젝트에서 상속가능하기 때문에 중복 설정이 불필요

2-2) 단점

  • 초기 학습에 어려움
  • Maven 에 비해 플러그인이 제한적
어찌됐든 Gradle이 기존의 AntMaven의 단점을 보완하고자 탄생하였고 그 의도가 잘 수행되고 있는 것 같아 저도 Gradle 사용을 주로 하게 될 것 같습니다.

(개인 프로젝트 개발일지 작성에서 부족한 부분을 조금이나마 채우게 되어서 다행이라는 생각을 끝으로 이번 포스트 여기서 마치겠습니다.)
profile
개발 학습

0개의 댓글