-
-
자바 세상의 빌드를 이끄는 메이븐
박재성 지음 / 한빛미디어 / 2011년 3월
평점 :
절판
모든 프로그래밍 언어가 비슷하겠지만, 웹프로그래밍 언어에 경우 상대적으로 변화의 폭이 크다. 이런 표현을 한 이유는 웹의 빠른 환경변화에 따른 언어 자체로의 변화적인 측면 때문이기도 하지만, 웹프로그래밍 언어에 경우 프레임워크와 연관 툴 및 유틸리티, 오픈소스, 웹서버, 효과적인 실무구현 사례, 데이터베이스 등에 따라 상당한 영향을 받기 때문이다. 때로는 프로그래밍 언어의 기술적 구현은 이 모든 요소들에 영향을 받아서 결정되기도 한다. 또한 독립적으로 설정되는 외부 툴을 상호보완적으로 어떻게 설정하고 적절하게 사용하느냐에 따라서 프로젝트의 기간과 과정을 유연하게 만들고, 프로젝트의 완성도를 높일 수도 있으며, 관리 및 유지보수의 편의성을 이끌어낼 수 있다.
중대형 프로젝트의 웹프로그래밍 언어로 가장 많이 사용되는 자바 언어에 경우 이런 영향을 더 많이 받기 때문에 개발자라면 새로운 유틸리티와 툴 사용에 대해서 좀 더 예민하게 느낄 것이다. 개발자 입장에서 프로그래밍 언어를 구현하기 위한 로직과 기술적 구현에만 집중하면 좋겠지만, 이제는 구조적인 연관 툴의 파악과 활용은 필수적이다.
프로젝트 기술이 발전할수록 프로그래밍 언어가 담당하는 영역이 단순화되고 축소되며, 관리 및 유지보수의 편의성을 위하여 기능별로 분리되어지고 있다. 이런 흐름 속에서 다양한 툴과 유틸리티, 플러그인들의 활용은 자연스럽게 늘어날 수밖에 없다. 또한 기술 변화에 맞춰 이 모든 것들은 새로운 것들로 대체되어진다. 개발자라면 매번 새로운 툴의 설정 및 사용법 등을 익혀야하는 부분이 불만스러울 수 있겠지만, 이제는 유연하게 대처하고 익히는 것도 개발자들의 스킬인 셈이다.
기존에 자바 빌트 툴로는 앤트를 사용해왔지만, 최근에 메이븐을 활용하는 사례가 늘어나고 있다. 아직은 활용사례의 공유도 적고, 관련서적도 많지 않기 때문에 사용법과 특징을 명확하게 파악하기 힘들어서 개발자들에게 낯선 툴이기도 하다.
자바 프로젝트에서 많이 사용되어지는 앤트는 빌드 환경이 예외적인 경우에도 유연하게 대처할 수 있고 학습 비용이 메이븐에 비해서 낮다는 장점이 있지만, 정형화된 형식이 없어서 프로젝트를 진행할 때마다 작업을 반복해야 하는 단점이 있다.
메이븐은 프로젝트 구조와 빌드 단계가 정형화되어 있기 때문에 자유도는 떨어지지만, 메이븐을 기반으로 하는 프로젝트는 같은 디렉토리 구조와 빌드 프로세스를 갖게 된다. 따라서 메이븐에 대한 경험이 있는 개발자라면 별도의 매뉴얼이나 다른 개발자의 도움 없이도 프로젝트를 빌드하고 소스코드를 분석할 수 있다. 프로젝트의 복잡도가 늘어나는 최근 경향을 생각한다면 효율적인 소스관리와 효과적인 유지보수를 위해서도 충분히 활용 가치가 있다.
메이븐은 기존의 빌드 툴에 비해서 충분히 장점이 많은 툴이다. 반면에 유연성이 부족한 툴이라는 비판도 받고 있다. 각 툴들이 계속해서 단점을 보완해가고 있기 때문에 아직은 명확하게 ‘앤트가 낫다, 메이븐이 낫다’라고 말하기는 조금 이를지 모르겠다. 한편으로 아파치 메이븐은 최근 전자정부 프레임워크에서 표준 빌드 툴로 선정되었고, 상당수의 자바 오픈 소스 프로젝트가 메이븐을 빌드 툴로 사용하고 있기 때문에 다양한 현업프로젝트에서 메이븐의 활용은 점차 늘어날 것이다.
- 메이븐 설치 및 템플릿 프로젝트 생성
- 메이븐 라이프사이클
- 의존 라이브러리 관리
- 메이븐과 이클립스 통합
- 메이븐과 데이터베이스 통합
- 리포팅 기능을 이용한 문서 관리
- 메이븐 사내 저장소 설치 및 활용
- 메이븐 아키타입
이 책에서 안내하는 실질적인 메이븐 사용과 관련된 내용은 크게 위와 같은 내용으로 구성되어 있다. 각 장마다 개념 및 세부적인 설정과 사용법, 플러그인 적용 및 리팩토링, 관리 및 고려사항 등이 예제를 통해서 상세하게 설명되어 있다.
국내에 메이븐 관련 서적이 드문 만큼 이 책은 개발자들의 메이븐 활용에 대한 답답함을 해소해줄 수 있을 것이다. 더욱이 이 책에는 다양한 프로젝트 경험과 직접 관련 프로젝트를 다룬 저자의 고민과 경험이 배어있기 때문에 개발자로써의 공감과 더불어 좀 더 쉽게 이해를 이끌어낸다.
이 책은 메이븐을 처음 접하는 개발자도 무리 없이 학습할 수 있도록 저자가 경험했던 프로젝트를 기반으로 프로젝트 시작부터 마무리 단계까지 메이븐을 실습할 수 있도록 구성되어져 있다. 따라서 이 책의 장점을 활용한다면 메이븐에 관심이 있는 개발자들뿐만 아니라 현재 메이븐을 활용한 프로젝트에 투입된 개발자들은 직접적인 도움을 받을 수 있을 것이다.