회원가입을 하면 원하는 문장을
저장할 수 있어요!
다음
AWS 이용 중이라면 최대 700만 원 지원받으세요
자바 프로젝트를 진행하다 보면 다양한 빌드 도구(Build Tool)를 접하게 됩니다. 이번 글에서는 자바 프로젝트에서 사용되는 빌드 도구의 종류와 차이점을 살펴보고, 그중에서도 최근에 주로 사용되고 있는 ‘그래들(Gradle)’의 사용 방법과 팁을 간단히 알아볼까 합니다. 적절한 빌드 도구의 활용은 프로젝트 개발 생산성에 중요한 영향을 미치기 때문에 신중히 선택해야 합니다.
회원가입을 하면 원하는 문장을
저장할 수 있어요!
다음
회원가입을 하면
성장에 도움이 되는 콘텐츠를
스크랩할 수 있어요!
확인
자바 프로젝트를 진행하다 보면 다양한 빌드 도구(Build Tool)를 접하게 됩니다. 이번 글에서는 자바 프로젝트에서 사용되는 빌드 도구의 종류와 차이점을 살펴보고, 그중에서도 최근에 주로 사용되고 있는 ‘그래들(Gradle)’의 사용 방법과 팁을 간단히 알아볼까 합니다. 적절한 빌드 도구의 활용은 프로젝트 개발 생산성에 중요한 영향을 미치기 때문에 신중히 선택해야 합니다.
빌드 도구(Build Tool)란 소프트웨어 개발에 있어서 소스 코드를 실행 가능한 애플리케이션으로 만들어주는 도구를 말합니다. 빌드 과정을 자동화하여 관리하는 기능을 하기 때문에 빌드 관리 도구(Build Management Tool) 또는 빌드 자동화 도구(Build Automation Tool)라고 불리기도 합니다.
빌드 도구의 특징은 개발자가 스크립트를 작성하여 다양한 작업을 수행할 수 있게 합니다. 예를 들어 소스 코드를 컴파일하거나 패키징할 수 있으며, 테스트를 자동으로 수행하거나 의존성 주입 및 배포 작업을 할 수 있습니다. 또 빌드 도구 종류에 따라 스크립트 작성 시 사용하는 문법이 다른데요. 일반적으로 XML이나 특정 도메인 언어(ex. Groovy)를 사용합니다.
자바 프로젝트 빌드 도구로 가장 널리 사용되던 것이 바로 앤트(Ant)였습니다. 이클립스라는 IDE에 기본적으로 탑재되었으며, XML 스크립트를 기반으로 하였는데요. 최근에 나온 빌드 도구들과 달리 자동으로 라이브러리를 업데이트하는 기능이 없기 때문에 현재는 주로 레거시 시스템에서만 사용되고 있습니다.
메이븐(Maven)은 Ant 이후에 나온 자바 빌드 도구로 자동으로 라이브러리와 의존성(dependency)을 관리하는 기능이 있습니다. Ant와 마찬가지로 XML 스크립트를 기반으로 하며, pom.xml 파일로 의존성을 관리합니다. Maven에서는 라이프 사이클(Life Cycle) 개념이 도입되어 빌드 순서 등을 정의할 수 있습니다.
그래들(Gradle)은 가장 최근에 나온 자바 빌드 도구로 ‘그루비(Groovy)’ 문법을 사용합니다. Build.gradle에 스크립트를 작성하며, 대규모 프로젝트에서 복잡해지는 경향이 있는 XML 기반 스크립트에 비해 관리가 편하다는 장점이 있습니다. Gradle은 현재 안드로이드 프로젝트의 표준 빌드 시스템으로 채택되어 있기도 합니다.
Gradle 이전의 빌드 도구인 Ant와 Maven은 XML 문법으로 스크립트를 작성하였습니다. XML은 여는 태그와 닫는 태그(이른바 껍데기 태그)를 넣어야 하기 때문에 복잡한 빌드 스크립트를 작성하기가 어려우며 가독성이 떨어집니다. 반면, Gradle은 Groovy 문법으로 간결한 스크립트를 작성할 수 있습니다.
프로젝트 규모가 커지게 되면 빌드 속도 차이가 개발 생산성에 큰 영향을 미치게 됩니다. Gradle은 캐싱(caching)을 하기 때문에Ant나 Maven 같은 이전 빌드 도구보다 빌드 속도가 빠릅니다. Gradle vs Maven Comparison에서는 빌드 캐시(Build cache)를 이용할 경우Gradle과 Maven의 빌드 속도가 최대 100배까지 벌어질 수 있다고 합니다.
대규모 자바 프로젝트는 대부분 다중 모듈로 구성됩니다. 즉, 하나의 프로젝트 안에 여러 모듈이 동시에 개발되며, 각 모듈이 공통으로 사용하는 모듈도 만들어지게 되는데요. 이렇게 여러 모듈 동시에 개발되는 경우 각각 따로 빌드 작업을 하면 번거로울 뿐만 아니라 실수가 생기기도 쉽습니다. Gradle의 멀티 프로젝트 빌드 기능을 이용하면 이런 번거로움과 실수를 획기적으로 줄일 수 있습니다.
Gradle 프로젝트를 생성하려면, 인텔리제이(IntelliJ) 초기 화면에서 빌드 시스템으로Gradle을 선택하면 됩니다. 이때 프로그래밍 언어가 자바(Java)로 되어 있으면, 자동으로 JDK 버전이 설정됩니다. 프로젝트 이름을 정하고 Create 버튼을 누르면 Gradle 프로젝트가 만들어집니다.
Gradle 프로젝트에서는 build.gradle이 핵심 파일입니다. 최근에는 코틀린(Kotlin) 문법으로 작성되기도 하지만 웹 프로젝트에서는 여전히 Groovy 문법으로 작성되는 경우가 많습니다. 따라서, Gradle 스크립트를 작성하려면 두 가지 문법을 모두 알아 두는 것이 좋습니다.
Gradle프로젝트를 진행할 때 각 개발자의 로컬 환경에 영향을 받지 않도록 그래들 래퍼(Gradle Wrapper)를 사용하는 것을 추천합니다. 간혹 Gradle Wrapper 없이 프로젝트를 진행하는 케이스를 접하기도 하는데요. Gradle Wrapper가 없으면 대규모 프로젝트에서 초기 환경 설정 시 많은 시간을 허비하게 됩니다.
따라서 초기 프로젝트 세팅 시 Gradle Wrapper 사용을 검토할 것을 적극 권장하는데요. 특정 버전의 Java나 Gradle을 설치할 필요 없이 바로 프로젝트를 실행할 수 있기 때문에 번거로운 작업을 줄일 수 있습니다. 참고로, Gradle Wrapper 사용 방법에 대한 자세한 내용은 해당 문서를 살펴보길 바랍니다.
이상 자바 빌드 도구 종류에 대해서 살펴보고, 그중에서 Gradle의 특징과 사용 방법 등을 알아봤습니다. 자바 프로젝트에서 어떤 빌드 도구를 어떻게 활용하는지에 따라 개발 생산성에 큰 차이가 생길 수 있습니다. 따라서 빌드 도구를 적절히 활용하는 방법에 대해서 꾸준히 관심을 가지고 공부해 둘 필요가 있습니다.
요즘IT의 모든 콘텐츠는 저작권법의 보호를 받는 바, 무단 전재와 복사, 배포 등을 금합니다.