자바 언어 생태계에서 진행되는 프로젝트의 필수 유틸리티를 다루는 책이다.
빌드, 형상관리, 배포, 협업을 위해서는 플러그인이 필수이며 현업에서 활발하게 사용되고 있다.
그 중 이 책에서는
메이븐, 그레이들, SBT , 깃/깃허브, 젠킨스 등을 다루고 있다.
현업에서 CI/CD를 가능케하는 필수 플러그인들을 다루고 있기 때문에
기초를 다지기 좋고, 기능들이 헷갈리거나 필요할 때 옆에 두고 보기 좋은 책이다.
현 프로젝트에서 사용하고 있는 maven 과 젠킨스 중심으로 살펴보았다. (git 등 버전관리 시스템은 오래 전부터 사용했기 때문에 특별히 새로 알게된 내용은 없었다. branch, merge, 충돌, HEAD, revert 등 git의 concept에 대해 다시 생각해볼 수 있는 정도)
특히 maven의 경우
run configuration, life cycle plugin(기본적인 maven의 goal 포함) , pom.xml, dependancies, 자바 프로젝트를 메이븐 프로젝트로 converter하는 방법 등을 소개하고 maven respository 을 통한 다양한 라이브러리 의존성 추가 및 라이브러리 생성 방법 등에 대해 다룬다.
maven이 어려운 빌드 도구는 아니기 때문에, 프로젝트를 진행하며 습득한 지식으로 충분하다고 느꼈다.
따라서 깊게 공부해볼 기회가 많지 않았는데
이번 기회에 maven의 탄생 배경과 컨셉에 대해 공부해볼 수 있어서 꽤 의미있다고 생각되는 도서이다.
젠킨스의 경우
빌드 파이프라인 생성, build job 생성 및 배포, parameter 전달, jaCoCo, findbugs 등의 설정 등 실제 배포 프로세스에 대해 다룬다.
현업에서 가장 많이 쓰이는 배포 도구 젠킨스 사용법을 익히며 CI/CD 프로세스를 익힐 수 있다.
그레이들에 대해서도 심도있게 다루고 있는데
실제 사용해본 경험이 없어 깊게 살펴보지 않았다.
토이 프로젝트에 그레이들 빌드 툴을 이용해보고싶다.
그때 이 책을 다시 꺼내 그레이들 부분을 읽고 적용해야겠다.
+ 소나큐브 (테스트 도구) 도 짧게 다루고 있다.