본문 바로가기
교재 실습/자바 웹 프로그래밍 Next Step

3.5.2 빌드 도구 메이븐

by Jint 2025. 2. 4.

자바 웹 애플리케이션을 개발하기 위한 프로젝트를 생성하면 먼저 프로덕션 소스코드 디렉토리, 테스트 소스코드 디렉토리, 웹 자원을 관리할 디렉토리, 프로젝트에서 사용할 외부 라이브러리를 클래스패스에 추가 등의 작업을 진행해야 한다.

빌드 도구는 프로젝트와 관련한 설정을 관리하면서 소스코드(프로덕션, 테스트 코드)에 대한 컴파일, 컴파일을 위해 필요한 라이브러리 관리, 테스트, 배포를 위한 패키징 작업 등의 작업을 자동화할 수 있도록 지원하는 도구이다. 프로젝트 디렉토리 구조와 의존성 라이브러리를 관리하고 있기 때문에 프로젝트를 이클립스 또는 인텔리제이와 같은 통합 개발 도구 프로젝트로 변환하는 것도 가능하다. 이처럼 빌드 도구를 활용하면 웹 애플리케이션 개발에서 발생하는 단순, 반복적인 작업을 자동화할 수 있다. 빌드 도구는 빌드 작업에서 한 발 더 나아가 간단한 배포 작업까지 할 수 있는 단계에 이르렀다. 지금까지 프로젝트를 생성, 개발 완료 후 배포하는 과정에서 단순, 반복적으로 발생하는 작업 때문에 시간을 낭비하는 것이 아깝다고 생각하는 개발자들은 빌드 도구를 도입할 때다. 빌드 도구는 개발자의 단순, 반복적인 작업을 자동화함으로써 개발자가 핵심적인 업무에 더 많은 시간을 투자할 수 있도록 도와준다.

이 책에서는 빌드 도구 중 메이븐이라는 빌드 도구를 활용하고 있다. 자바 진영에서 널리 활용되고 있는 빌드 도구는 메이븐과 그래들이 있다.

 

※ 그래들

그래들(http://gradle.org/)은 그루비(groovy) 언어로 빌드 스크립트를 작성하는 빌드 도구로 앤트(http://ant.apache.org/) 빌드 도구의 유연성과 메이븐 빌드 도구의 관례에 따른 편리함을 제공하는 것이 장점이다. 최근에는 안드로이드 빌드 도구로도 활용되면서 그래들에 대한 인기가 높아지고 있는 실정이다.

 

메이븐이 좀 더 오랫동안 사용해온 빌드 도구로 설정 파일을 XML로 작성한다. 최근에 그래들 빌드 도구에 대한 인기도가 점점 더 높아지고 있다. 그래들은 그루비라는 언어를 기반으로 설정 파일을 관리하기 때문에 설정 파일에 대한 유연성도 높고, 코딩량도 메이븐의 XML에 비해 훨씬 적다.

메이븐과 그래들 빌드 도구의 기본 개념은 비슷한 점이 많다. 따라서 둘 중 하나의 빌드 도구를 익히면 다른 빌드 도구 또한 쉽게 학습할 수 있다. 이 책을 학습할 때 메이븐, 그래들과 같은 빌드 도구에 대해 잘 몰라도 충분히 따라갈 수 있다. 아직까지 빌드 도구를 활용해본 경험이 없는 독자라면 이 책을 읽어나가면서 빌드 도구의 피룡성에 대해 느낀 후 더 깊이 있는 학습을 해도 괜찮다. 그렇다고 학습하지 않아도 괜찮다는 것은 아니다. 빌드 도구 활용은 자신의 시간을 소중하게 생각하는 개발자라면 반드시 갖추어야 할 역량 중의 하나이다.

메이븐 빌드 도구를 학습하려면 먼저 https://slipp.net/wiki/pages/viewpage.action?pageId=10420233 에서 제공하는 문서를 참고한다. 이 문서는 "자바 세상의 빌드를 이끄는 메이븐" 책의 6장까지 공개하고 있다.

동영상을 통해 학습하는 것이 익숙하다면 다음 동영상을 활용해 학습한다. 동영상을 통해 학습하면 문서를 통해 전달할 수 없는 부분도 학습할 수 있다는 장점이 있다.

 

http://youtu.be/Eg1Ebl_KNFg : 빌드 도구에 대한 초간단 설명, 이클립스에서 메이븐 디렉토리 구조의 프로젝트 생성, JUnit 라이브러리에 대한 의존성 추가, 메이븐 의존성 전이에 대해 설명한다.

http://youtu.be/A8h1y-qXCbU : 이클립스 effective pom 탭을 통해 메이븐 부모 pom 설명, 메이븐 기본 명령어인 compile/test/package 페이즈(phase) 설명, 이클립스에서 메이븐 명령 실행을 다룬다.

http://youtu.be/58yiJQU0xEY : 메이븐의 페이즈(phase)와 골(goal)과의 관계 설명, complier 플러그인과 eclipse 플러그인 재정의 및 빌드, 이클립스에서 메이븐 골 실행 방법을 설명한다.

개발하고 있는 프로젝트의 디렉토리 구조를 변경하지 않으면서 메이븐을 적용할 수 있다. 메이븐을 적용할 경우 GitHub에 공유하던 많은 소스코드를 공유하지 않아도 된다. 특히 이클립스 관련 설정과 jar 라이브러리를 공유하지 않아도 되는 것은 큰 장점이다.

http://youtu.be/ovpVzUaQtSM : 메이븐이 적용되어 있지 않은 프로젝트에 메이븐을 적용하는 과정, GitHub에서 jar 파일을 버전 관리하지 않도록 설정하는 과정을 다룬다.

 

빌드 도구에 대한 학습을 반드시 메이븐부터 시작하지 않아도 된다. 최근 경향은 메이븐에서 그래들로 바뀌어가고 있는 단계이기 때문에 학습 시작 단계부터 그래들로 시작하는 것도 좋은 선택이다. 그래들에 대한 학습은 http://kwonnam.pe.kr/wiki/gradle 문서를 활용해 시작할 수 있다.



참고도서 : https://roadbook.co.kr/169

 

[신간안내] 자바 웹 프로그래밍 Next Step

● 저자: 박재성 ● 페이지: 480 ● 판형: 사륙배변형(172*225) ● 도수: 1도 ● 정가: 30,000원 ● 발행일: 2016년 9월 19일 ● ISBN: 978-89-97924-24-0 93000 [강컴] [교보] [반디] [알라딘] [예스24] [인터파크] [샘

roadbook.co.kr

댓글