본문 바로가기
코딩 잡다

자바 빌드 도구 비교

by Jason95 2021. 4. 2.

빌드에 대한 상세한 이해가 필요한 이유

- Ant, Maven, Gradle 등의 빌드 도구를 효과적으로 사용하기 위해서는, 빌드 자체에 대한 이해가 필요

 

빌드란?

- 컴파일 및 패키징 과정을 통해 배포 및 실행 가능한 형태로 변환하는 것

* 컴파일 : 개발자가 작성한 언어를 컴파일러를 통해 이진 코드로 변환

* 링크 : 컴파일된 파일들 간에 연결 관계를 지어주는 과정. 파일 간에 링크가 되지 않으면 해당 파일들은 정상적인 실행이 불가능하다. 정적 링크와 동적 링크가 있음

* 패키징 : dll, jar, war, exe와 같이 배포 및 실행 가능한 형태로 압축하는 것 (링크 과정을 포함함)

 

JAR(Java ARchive Files)?

- Java의 실행파일이다.

- 여러 개의 자바 클래스 파일과, 클래스들이 이용하는 관련 리소스(텍스트, 그림 등) 및 메타 데이터를 하나의 파일로 모아서 자바 플랫폼에 응용 소프트웨어나 라이브러리를 배포하기 위한 소프트웨어 패키지 파일 포맷이다.

- JAR 파일은 실제로 ZIP 파일 포맷으로 이루어진 압축 파일로서, 파일 확장자는 .jar이다.

 

굳이 JAR(=배포 파일 =실행 파일)로 패키징 하는 이유

- 자바 애플리케이션을 구성하는 클래스와 관련 리소드들을 단일 파일로 묶었기 때문에, 한 차례의 요청으로 애플리케이션 전체를 전송할 수 있게 해준다.

- 주로 대규모 시스템에서 서로 관련된 파일들끼리 하나로 묶으면 재사용 및 관리하기 편하다.

- 인터페이스가 같을 때, 한 실행 파일을 다른 실행 파일로 통째로 교체하는 것이 가능하다.

- 그밖에 서명을 통해 보안 관련된 기능을 수행할 수도 있다.

 

빌드 도구의 역할

1) 로컬이나 원격에 있는 외부 라이브러리들과 기타 리소스들을 자신의 프로젝트에 연결하여 패키징하는 것을 편리하게 해준다

2) 서로 다른 환경에서 개발하는 팀원들 간에 라이브러리 버전을 통일하는 데에 편리하다

3) 테스트를 실행해준다

4) 프로덕션 환경에 배포하는 등의 반복적이고 귀찮은 수작업들을 편리하게 해준다

 

빌드 도구의 종류

- C : cmake

- Java : Ant, Maven, Gradle

 

Ant (2000~)

- 빌드에 필요한 정보가 기술된 파일 : build.xml

- 자바 빌드 도구들 중에 가장 오래되었다.

- 절차지향성 : 명확한 빌드 절차를 정의해야 한다

- 단점 : 한 눈에 이해하기 어렵고 복잡해서 유지 보수 및 재사용이 어렵다.

- 장점 : 다른 빌드 도구들에 비해 유연하다 (정해진 작성 규칙이 없으며, low level의 설정까지 일일이 수작업으로 설정한다)

 

Maven (2002~)

- 빌드에 필요한 정보가 기술된 파일 : pom.xml

- 단점 : 플로우나 조건부 상황, 사용자 지정 빌드 스크립트는 Ant에 비해 작성하기 어렵다

- 장점 : 계층적인 데이터를 표현하기에 좋고, Dependency Management에 유리하다

 

Gradle (2012~)

- AntMaven의 장점들만 뽑아 만들었다

- 장점

* 빌드를 자동화한다.

* XML이 아닌 Groovy 기반 DSL(Domain-Specific Language)로 작성하여 가독성이 좋다

* 초기 프로젝트 설정에 드는 시간을 절약하고, 개발자의 의도대로 설계하기 편하다

'코딩 잡다' 카테고리의 다른 글

cmd에서 java class파일을 실행할 때 오류  (0) 2021.08.14
Intellij 단축키  (0) 2021.03.21