회사에서 신규로 프로젝트 진행중인데 수행사에서 개발스펙을 아래와같이 들고왔다.
Java 17(OpenJDK)
API : Spring boot 3.1.0(Maven 기반)
프론트사이트 : vue.js 3.x + nuxt.js
관리자사이트 : vue.js (bootstrap style)
Mysql Ver 8.X
순간 두눈을 의심했다. Maven...????? 메 이 븐? ( 참고로 우리는 Gradle 로 진행해달라고 사전에 미리 요청한 상태 )
그리고 프론트사이트는 Nuxt로 하면서 관리자는 또 왜 아니야? 뭐 따로 가는겨?
stateless 하게 가달랬더니 maven 을 들고 온 게 좀 불안하다. (아 설마 JSP 쓰는거아니겠지^^)
그래도 이유가 있을까?.....싶어 Maven 의 장단점을 찾아보았다.
음......... 딱히... 메리트있는 장점이 아닌거같은데?????.....
일단 같은 개발환경을 세팅한다는 가정하에 maven 과 gradle 세팅 소스를 보자
1. Maven -> pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.1.0</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example2</groupId>
<artifactId>demo-maven</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo-maven</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>17</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
2. Gradle -> build.gradle
plugins {
id 'java'
id 'org.springframework.boot' version '3.1.0'
id 'io.spring.dependency-management' version '1.1.0'
}
group = 'com.enm'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '17'
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
test {
useJUnitPlatform()
}
바보가 아니라면 이것만 봐도 왜 Gradle을 쓰는지 알 수 있을꺼같다.
요즘 레거시 시스템이 아닌이상 maven은 잘 안쓰는 추세기도 하다.
새로 등장한 Gradle 이 빌드 속도도 빠르고, 의존성 설정등 유지보수 측면에서도 뛰어나기에 안 쓸 이유가 없기 때문이다.
기존시스템도 아니고 신규 시스템 구축하는데 왠 Maven? ㅋㅋㅋㅋㅋㅋㅋㅋ
이상한 수행사다.
(왠지 프로젝트 진행하면서 화나는 포인트가 많아질꺼 같아 걱정이다.)
참고 :
https://dev-coco.tistory.com/65
https://binco.tistory.com/entry/Maven-VS-Gradle
'web > SpringBoot' 카테고리의 다른 글
HttpOnly + Secure Cookies 생성 (0) | 2023.09.12 |
---|---|
HTTPS(SSL) 적용 (0) | 2023.09.11 |
ErrorContoller 오류처리 (0) | 2023.09.06 |
Global Exception 처리 (0) | 2023.09.06 |
DataJpaTest 중 삽질해결 기록.... (0) | 2023.08.31 |