Maven 입문 | Maven 준비 | JDK와 빌드 도구


Java 개발은, JDK라는 도구로 한다. 이것은 아마도 Java 입문서 등에서 먼저 써 있을 것이다. JDK에 Java 런타임과 컴파일러가 들어 있으며, 이를 사용하여 개발한다고 하는 것은 확실히 맞는 설명이다. 그러나 JDK만 있으면 정말 충분한 것인가? 사실 더 필요한 것이 있다.

요즘, Java 개발에 “JDK만으로 프로그램을 컴파일하여 개발하고 있다"라고하는 사람은 없을 것이다. 현재 프로그램은 매우 복잡한 구성으로 되어 있다. 여러 소스 코드 파일, 각종 리소스들, 구체적인 정보를 기술한 설정 파일, XML에 의한 데이터 많은 비 프레임워크와 라이브러리. 이것들을 깨끗이 정리해서 JDK으로 컴파일을 하는 사람을 과연 얼마나 될지.

프로그램에 필요한 파일들이 증가함에 따라 JDK가 아닌, 본격적인 개발 도구를 이용하는 사람이 증가하고 있다. Java 개발자 중에는 “Eclipse에서만 개발한 적이 없다"라는 사람도 많을 것이다. 이런 개발자들에서 명령어로 개발하라고 하면, 모른다고 하는 사람이 대부분일 것이다.

이런 Eclipse 같은 개발 도구는 편리하지만, “개발 도구에서 만든 프로젝트 밖에 사용할 수 없다"라는 문제도 내포되어 있다. 개발 환경이 다른 개발 도구로 변경되었지만 프로젝트가 마이그레이션할 수 없는 일도 있다. 프로젝트를 보내달라고 하면, 본적도 없는 개발 도구였던 것으로 사용할 수 없을 수도 있을 것이다.

개발 도구의 차이 등에 영향을 받게되는 것은 각각의 도구로 프로젝트의 공통화가 도모되고 있지 않기 때문이다. 이러한 상황에서 최근 특히 주목 받게 된 것이 “빌드 도구"에 의한 개발이다.

빌드 도구(build tool)란?

빌드 도구라는 것은 프로젝트 생서, 테스트 빌드, 배포 등 기본적인 작업을 위한 전용 프로그램이다. 뭐, 정확하게 말하면 “프로젝트 관리 도구"라고 해야 하지만, 일반적으로 “빌드 도구"라는 표현이 더 널리 이용되고 있다.

빌드 도구는 커멘드을 사용하여 프로젝트 생성 및 빌드 작업 등을 실시한다. 커멘드으로 다양한 작업을 할 수 있도록, 다양한 개발 도구 내에서 이용하는 것도 비교적 간단하다. 따라서 최근의 개발 도구에는 빌드 도구를 지원하고, 내부에서 빌드 도구를 사용하여 프로젝트 작성 및 빌드할 수있게 되어있는 것도 증가하고 있다.

이러한 것은 실제로 프로젝트 생성 및 빌드는 빌드 도구를 수행하고 있기 때문에, 같은 빌드 도구를 지원하는 다른 프로젝트에 쉽게 프로젝트를 마이그레이션할 수 있다. 또한 빌드 도구에서 생성된 프로젝트는 거의 같은 파일 구성되기에 개발 규칙 등이 달라도 거의 같은 개발을 할 수 있다.

또한 빌드 도구 빌드의 내용을 기술한 파일(빌드 파일)를 읽고 처리를 하기 때문에, 빌드 파일의 내용을 이해하면 세심하게 프로젝트를 관리할 수 있다.

프로젝트의 복잡성에 따라, 빌드 도구의 중요성이 높아지고 있다.