Lined Notebook

Maven과 Gradle 차이 및 프로젝트 설정

by HeshAlgo

1. Maven과 Gradle

우리는 스프링 프로젝트를 생성할 때 Maven을 선택할 것인지 Gradle을 선택할 것인지 선택할 것입니다. 이전엔 책에서 하란대로 따라만 했지 둘이 어떤 차이가 있는지 잘 모르고 개발을 했습니다. 이런 기본적인 것들을... 좀 채워보고자 깊이는 아니더라도 어느 정도 이해할 수 있는 수준으로 스프링을 초기 설정부터 시작해 개발을 진행해보겠습니다.

 

1) Maven

pom.xml을 이용한 정형화된 빌드 시스템으로 다양한 라이브러리를 관리하며 네트워크를 통해 자동으로 다운을 받아줍니다.

기존엔 Apach Ant(자바로 개발된 어플리케이션으로 커맨드 라인 형태의 빌드, 배포를 위한 도구)라는 빌드 도구를 많이 사용했지만 Maven이 Ant를 넘어서 개발자들이 많이 사용하고 있습니다.

 

2) Gradle

Ant와 Maven의 장점들을 모아 개발해 2012년에 출시된 Groovy를 이용한 빌드 자동화 시스템입니다. Android 빌드 도구로 채택되었으며 Java, C/C++, Python 등의 여러 가지 언어를 지원하며 별도의 빌드 스크립트를 통하여 사용할 애플리케이션 버전, 라이브러리 등의 항목을 설정할 수 있다. 스크립트 언어로 작성되기 때문에 변수 선언, if, for 등의 로직 구현이 가능해 간결하게 구성이 가능합니다.

 

2. Maven vs Gradle

결론적으로 말씀드리면 Gradle이 더 좋습니다.

Gradle에서 설명드린 것처럼 Ant와 Maven의 장점들을 모아서 만들어진 것이기 때문에 Gradle이 더 좋습니다.

Gradle이 늦게 나온 만큼 상용성이나 성능 등 뛰어난 스펙을 가지고 있기 때문입니다.

 

1) Build라는 동적인 요소를 Xml로 정의하기에는 어려운 부분이 많다.

- 설정 내용이 길어지면서 가독성이 떨어짐

- 의존관계가 복잡한 프로젝트에는 부적절

2) Groovy를 사용하기 때문에 동적인 Build는 Groovy 스크립트로 플러그인을 호출하거나 직접 코드를 짜면 된다.

- Configuration Injection 방식을 사용해서 공통 모듈을 상속해서 사용하는 단점을 커버

- 설정 주입 시 프로젝트의 조건을 체크할 수 있어서 프로젝트 별로 주입되는 설정을 다르게 할 수 있다.

 

2. 프로젝트 설정

앞으로 개발할 프로젝트는 단순 공부를 위한 프로젝트입니다.

그렇기 때문에 단순 CRUD를 이용한 게시판을 시작으로 점차 새로운 기술들을 적용해보고 학습할 예정입니다.

다음과 같은 스펙을 이용해 프로젝트를 개발할 예정입니다.

 

- Project : Gradle

- Language : Kotlin

- JDK : Java12

- Server : Spring, JPA

- Database : MySQL

- SVN : Git

 

1) 프로젝트 생성

스프링 프로젝트 초기화 작업에 필요한 작업들을 순차적으로 진행합니다.

Gradle과 Kotlin을 이용해 개발할 것이기 때문에 아래와 같이 설정을 선택합니다.

그리고 추가적으로 필요한 라이브러리들이 있기 때문에 Add Framework Support... 를 선택해서 추가해보도록 하자

Spring Data JPA : JPA기반을 쉽게 사용하기 위해 필요한 라이브러리

Spring MVC : Servlet기반으로 API를 구축하기 위해 필요한 라이브러리

 

Spring MVC 추가로 인해 web이란 폴더가 생성되며 하위에 dispatcher-servlet.xml, applicationContext.xml, index.jsp 등 다양한 파일들이 생성되었습니다. 저 같은 경우 이 프로젝트는 api용으로 사용하고 싶기 때문에 index.jsp파일은 삭제했고 아래와 같이 디렉터리 구조로 수정했습니다.

2) IntelliJ 톰캣 추가

맥을 이용해서 개발을 진행하고 있기 때문에 저는 Homebrew를 이용해 톰캣을 설치해보겠습니다.

설치하는 과정은 블로그에 많이 나오기 때문에 생략하겠습니다.

*저 같은 경우 Homebrew로 설치 시 버전을 명시 안 해서 가장 최신 버전의 톰캣이 깔렸습니다..(10 버전)

일단은 최신 버전을 이용해 진행하겠습니다.

 

Add Configuration -> '+' -> Tomcat Server -> Local을 선택해서 클릭하게 되면 아래와 같이 변경됩니다.

 

Application을 실행할 서버를 설정해줘야 하는데 설치했던 Tomcat을 추가해주기만 하면 됩니다.

Configure... 버튼을 클릭하면 톰캣 경로를 설정할 것인데 주의할 점은 Tomcat Home에 bin, logs, webapps 등을 포함하고 있는 libexec를 경로로 선택해야 합니다.

설치된 경로로 설정을 하게 되면 아래와 같이 기본 설정들이 추가가 됩니다. 저는 이 기본 포트 8080을 따라서 진행하겠습니다. 

그리고 Warning: No artifacts marked for deployment 멘트가 적혀있는데 무시하고 Ok를 통해 설정해줬습니다.

Artifact를 수동으로 설정하는 것인데 저는 Deployment 탭으로 가서 Application context를 /로 바꿔줬습니다.

그리고 초록색 세모 모양 버튼을 클릭해 Application을 실행시킨 후 콘솔을 보면 Connected to Server가 실행됩니다.

그리고 url창에 localhost:8080을 실행하면 아래와 같이 404 Not Found가 발생하면 정상적으로 설치가 완료됐습니다.

404가 뜨는 건 당연한 겁니다! 아직 뷰를 만들거나 설정을 하지 않았기 때문입니다.

 

 

 

참고 문헌 😶

https://gradle.org/
https://maven.apache.org/
http://egloos.zum.com/kwon37xi/v/4747016
https://bkim.tistory.com/13

'Spring Boot' 카테고리의 다른 글

DI(Dependency Injection), IoC(Inversion of Control)  (0) 2024.01.21

블로그의 정보

꾸준히 공부하는 개발 노트

HeshAlgo

활동하기