코딩항해기
[리뷰/우아한테크] Gradle 본문
Gradle
2012년 출시된 Groovy를 기반으로 한 오픈소스 빌드 도구로 거의 모든 타입의 소프트웨어를 빌드할 수 있는 빌드 자동화 시스템이다.
빌드
소스코드를 컴파일, 테스트, 정적분석 등을 실행해 실행 가능한 애플리케이션으로 만들어주는 과정
다양한 라이브러리가 등장하며 라이브러리를 다운로드 및 추가해야하는 문제, 버전관리 문제, 다운로드 받은 jar파일의 보완 위험 문제점이 부각되었다. 이런 문제를 해결하기 위한 도구로 빌드 도구가 생겨났다.
빌드 도구
계속해서 늘어나는 라이브러리를 자동 추가 및 관리해주며 버전을 쉽게 동기화해준다.
Gradle은 이러한 빌드 도구 중 하나로 빌드 과정을 편하게 해준다.
Groovy
JVM 상에서 실행되는 스크립트 언어로 Java와 유사한 문법 구조를 가지며, 호환성이 아주 좋다.
Gradle은 Groovy를 기반으로 하고 있어 Java언어와 잘 맞는다.
Gradle 장점
Gradle은 프로젝트를 설정주입하는 방식으로 정의하며 멀티 프로젝트 빌드가 가능하고 빌드 속도가 빠르다.
설정주입 방식으로 정의 (Configuration Injection)
Maven의 상속 구조보다 재사용에 용이하고 프로젝트의 조건을 체크할 수 있어 프로젝트 별로 주입되는 설정을 다르게 할 수 있다.
멀티 프로젝트 빌드
하나의 리포지토리 내에 여러 개의 하위 프로젝트를 구성할 수 있다.
(공통된 내용과 모듈 부분을 분리해 관리 가능해 중복을 피할 수 있다.)
빌드 속도
점진적 빌드 방식을 사용해 빌드 실행 중 마지막 빌드 호출 이후에 task의 입력, 출력 혹은 구현이 변경됐
는지 확인한다. 최신 상태가 아니라면 빌드는 실행되지 않는다.
불필요한 부분에 대해 중복 빌드가 일어나지 않아 속도가 증가되는 것이다.
그 외에도 빌드 캐시를 사용해 두 개 이상의 빌드가 돌아가고 하나의 빌드에서 사용되는 파일들이 다른 빌드들에 사용된다면 Gradle은 빌드 캐시를 이용해 이전 빌드의 결과물을 다른 빌드에서 사용할 수 있다. 다시 빌드하지 않아 빌드 시간이 줄어든다.
서비스 요청에 응답하기 위해 오랫동안 살아있는 프로세스인 데몬 프로세스도 이용한다. Gradle의 데몬 프로세스는 메모리 상에 빌드 결과물을 보관해두고 사용하기 때문에 한 번 빌드 된 프로젝트는 다음 빌드 때 더욱 빠르게 빌드된다.
Maven과 Gradle
Maven이 더 많이 사용되지만 Gradle을 정리하는 이유는 새로운 프로젝트를 할 때는 Gradle를 사용하는 추세도 있기 때문이다. (성능 면에서 우수한 점이 있어 사용하지 않을 이유가 없다.)
사용법 (의존성 주입 시)
'IT tech' 카테고리의 다른 글
[리뷰/우아한테크] MySQL 성능 최적화 (0) | 2024.11.28 |
---|---|
[리뷰/우아한테크] 데이터베이스 INDEX (0) | 2024.11.28 |
[리뷰/우아한테크] meta 태그 (0) | 2024.11.10 |
[리뷰/우아한테크] z-index의 동작방식 (0) | 2024.10.25 |
[리뷰/우아한테크] Garbage Collector (0) | 2024.10.25 |