Maven은 무엇일까?

IRISH·2023년 10월 14일
1

IT지식

목록 보기
4/12
post-thumbnail

1. Maven에 대한 정의

  • Maven은 자바용 프로젝트 관리 도구
  • Maven은 자바 프로젝트의 빌드(build)를 자동화 해주는 빌드 툴(build tool)
  • 즉, 자바 소스를 compile하고 package해서 deploy하는 일을 자동화 해주는 것

2. Maven을 왜 사용해야 하나?

  • Maven은 필요한 라이브러리를 특정 문서(ex - pom.xml)에 정의해 놓으면 내가 사용할 라이브러리 뿐만 아니라 해당 라이브러리가 작동하는데에 필요한 다른 라이브러리들까지 관리하여 네트워크를 통해서 자동으로 다운받아 준다.
  • 즉, 빌드할 때 필요한 자원들을 Maven에서 종합적으로 관리하는 것으로 볼 수 있다.

3. 빌드와 빌드 도구

빌드

  • 소스코드 파일을 컴퓨터에서 실행할 수 있는 독립 소프트웨어 가공물로 변환하는 과정 또는 그에 대한 결과물
  • 쉽게 푼다면, 우리가 작성한 소스코드(java), 프로젝트에서 쓰인 각각의 파일 및 자원 등(.xml, .jpg, .jar, .properties)을 JVM이나 톰캣같은 WAS가 인식할 수 있는 구조로 패키징 하는 과정 및 결과물이라고 할 수 있다.

빌드 도구

  • 빌드 도구란 프로젝트 생성, 테스트 빌드, 배포 등의 작업을 위한 전용 프로그램.
  • 빠른 기간동안 계속해서 늘어나는 라이브러리 추가, 프로젝트를 진행하며 라이브러리의 버전 동기화의 어려움을 해소하고자 등장.
  • 초기의 java 빌드도구로 Ant를 많이 사용하였으나 최근 많은 빌드도구들이 생겨나 Maven이 많이 쓰였고, 현재는 Gradle이 많이 쓰인다.

4. Maven 설정 파일

settings.xml

  • 메이븐 빌드 툴과 관련한 설정파일
  • MAVEN_HOME/conf 디렉토리에 위치 (메이븐 설치 시 기본 제공)
  • settings.xml의 설정

pom.xml

  • POM = Project Object Model(프로젝트 객체 모델)
  • POM은 pom.xml파일을 말하며 pom.xml은 메이븐을 이용하는 프로젝트의 root에 존재하는 xml 파일이다.
    (하나의 자바 프로젝트에 빌드 툴을 maven으로 설정하면, 프로젝트 최상위 디렉토리에 "pom.xml"이라는 파일이 생성된다.)
  • Maven의 기능을 이용하기 위해서 POM이 사용되며, 프로젝트 내 빌드 옵션을 설정하는 부분
  • 파일은 프로젝트마다 1개이며, pom.xml만 보면 프로젝트의 모든 설정, 의존성 등을 알 수 있다.
  • 다른 파일이름으로 지정할 수도 있다. (mvn -f 파일명.xml test). 하지만 pom.xml으로 사용하기를 권장한다.

5. 느낀점

  • 과거에 스프링부트 공부할 때 Maven을 통해서 빌드를 했었다. 그때는 좀 더, 스프링부트에 대해 수동적으로만 들어서 pom.xml이 프로젝트를 가동할 때 사용되는 중요한 파일이라고는 생각했었다.
  • 그리고 회사에서 프로젝트를 Eclipse에서 Tomcat을 통해 웹을 가동하는데, 빌드 도구로 Maven을 사용하고 있었다.
  • 근데, 문뜩 왜 사용하는지에 대한 원초적인 의문이 들어서 이번 기회에 쓰게 됐다.
  • 어찌됐든, 프로젝트 빌드에 있어 사용하는 것이 Ant, Gradle, Maven 등이 있다. 이 중에서 Maven을 선택하면 프로젝트 최상단에 pom.xml이 생기고 이 파일을 통해서 프로젝트에 필요한 라이브러리가 모여진다. 그리고, Maven을 통해서 실행을 하면 compile > package > deploy까지 자동으로 해준다!

6. 참고

profile
#Software Engineer #IRISH

0개의 댓글