[Spring]Maven이란?

Song-YunMin·2020년 12월 10일
1

Java

목록 보기
2/4
post-thumbnail

서론

오늘은 Maven 에 대해서 알아볼 것이다.
MavenSpring 과 함께 많이 언급되는 존재인데, 그 이유와 정확한 정의를 알아 보고자 한다.

Maven

Maven은 자바 프로젝트의 빌드(Build)를 자동화 해주는 Build Tool이다.
간단하게 말해서 자바 소스를 Complie 하고 Package해서 Deploy하는 일을 자동화 해주는 것이다.
이클립스로 프로젝트를 진행해본 사람은 Maven이라는 단어를 본 적이 있을 것이다! 필자는 IntelliJ를 사용하지만 자바 계열 IDE에서 흔하게 볼 수 있는 단어다.

그리고 우리들은 이미 Maven을 사용하고 있었다.
IDE에는 Maven이 내장 되어 있고, pom.xml을 통해 Dependency를 추가하고 삭제하여 라이브러리를 관리 해왔다.

Maven을 사용하는 이유는?

Maven의 정의는 아래와 같다

Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information.

프로젝트를 빌드해주고 라이브러리를 관리하며 개발자들이 업무 환경에서 협력하며 일을 할 수 있도록 개발 된 도구이다.

예를 들어보자, 10명이서 프로젝트를 진행하는데 라이브러리를 추가하고 삭제해야 하는 과정이 생겼다. 여기서 사용하는 라이브러리 수가 몇개 안된다면 jar를 추가하는 방식으로 사용할 수 있지만, 프로젝트의 사이즈가 커지고 사용하는 라이브러리가 많아진다면 관리가 어려워진다.

메신저 등을 이용하여 라이브러리를 전송하고.. 받아서 import하고,, 이런 방식보다 dependency를 추가하고 삭제하여 라이브러리를 관리한 pom.xml 파일만 공유하는게 훨씬 효율적인 방법이다.

또한 Maven은 필요한 라이브러리의 하위 라이브러리까지 버전에 맞게 설치해준다.
예를 들어, 팀원에게 pom.xml을 통해서 dependency에 추가하고 라이브러리를 설치한다고 하면, dependency에 명시되어있는 라이브러리를 사용하기 위한 다른 하위 라이브러리도 알아서 같이 설치를 해준다.

123이라는 라이브러리를 사용하기 위해 321 이라는 라이브러리가 필요하다면, dependency123라이브러리만 넣는다. 그러면 Maven에서 알아서 321라이브러리를 설치 해준다.

Maven을 알고 Spring을 알아야 하는 이유

Spring 프로젝트 중, 분명 똑같은 환경에서 프로젝트를 다른 개발자에게 받는 상황이 많이 생긴다.
이 상황에서 Maven clean...Maven install등 하라는 대로만 한다면 정확한 이유는 모르고 그 순간만 해결하는 상황이 반복 될 것이다.
Spring을 해야하는 상황에서 정확하게 문제점을 파악하고 해결하는 것이 중요하기 때문에 알고 넘어가야 한다.

참고문헌

기본기를 쌓는 정 아마추어 코딩 블로그
마이자몽

profile
고독한 서버 개발 3년차

0개의 댓글