Gradle ? Gradle !

sameul__choi·2021년 11월 29일
0
post-thumbnail

Gradle Github

Gradle은 그루비를 이용한 빌드 자동화 시스템이다. Groovy와 유사한 도메인 언어를 채용하였으며, 현재 안드로이드 앱을 만든는데 필요한 안드로이드 스튜디오의 공식 빌드 시스템이기도 하다. Java, C/C++, 파이썬 등과 같은 여러 언어를 지원한다. (wikipedia)

'Gradle'은 간단히 말하면 오픈소스 빌드 도구 입니다. 가물가물 하지만 정보처리기사 시험을 준비하며 공부했던 내용을 떠올려 보자면 ant와 maven과 같은 일을 하는 친구입니다.

지금은 잘 보이지 않지만 10년 정도된 프로젝트를 보면 종종 ant를 사용한 흔적들을 볼 수 있다고 합니다. 5~10년정도되는 프로젝트들에는 maven의 흔적들이 보이구요. (maven은 현재도 사용되고 있습니다.) 하지만 신규로 들어가는 프로젝트에는 Gradle을 많이 사용합니다. 가장 최근에 나온 빌드 툴이면서, ant와 maven의 단점이 되는 부분을 개선하여 나왔기 때문입니다.

ant와 maven을 거쳐 gradle까지 그럼 빌드 도구는 왜 사용하는 걸까요?

이 질문에 답하기 위해서 "빌드와 실행"에 대해서 알아보겠습니다

빌드와 실행

빌드란 ? 소스코드 파일을 컴퓨터에서 실행할 수 있는 독립 SW 가공물로 변환시키는 과정입니다. 독립 SW 가공물을 Artifact라고도 합니다. 쉽게 말하자면 타이핑한 프로그램 코드들(수천, 수만 줄)을 독립적인 하나의 파일(Artifact)로 만들어 내는 과정입니다.

그냥 컴파일 하면 되는거 아닌가 ?

라고 생각하실수도 있겠습니다. 하지만 소스코드들을 아티팩트로 만드는 과정인 빌드는 굉장히 복잡합니다. 여러 단계가 있는데 단계를 세분화 해보도록 하겠습니다.

1) 소스 코드 컴파일
2) 테스트 코드를 컴파일
3) 테스트 코드를 실행
4) 테스트 코드 리포트를 작성
5) 기타 추가 설정한 작업들을 진행
6) 패키징 수행
7) 최종 SW 결과물

패키징? -> 개발을 하다보면 다른 사람이 만들어 놓은 오픈소스를 가져다가 쓰는 경우가 많습니다. (ex SpringBoot Framework, poi (about Excel)) 이러한 오픈소스들을 구현된 소스 코드들과 결합해주는 과정

실행이란 ? 작성한 코드를 컴파일을 거쳐 작동시켜보는 것 (코드를 검사하는 테스트코드를 동작시켜 보는 것도 실행)

여러 가지 복잡한 단계가 있기 때문에 빌드와 실행을 한번 하는 것이 쉬운 것이 아닙니다. 하루에도 여러번 빌드와 실행을 하는데 이렇게 긴 과정을 거친다면, 심지어 수동이라면, 쉽지는 않을 것 같습니다.

거기에 각기 다른 사람들이 작업을 해야하고 모든 과정이 수동이고 외부 코드를 다합쳐야 한다면, 어마어마한 소스코드양에 리소스도 굉장히 많이 들 것 입니다. 실수가 무조건 나올 수 밖에 없겠죠.

그래서 나온 것이 빌드 도구입니다.

  • 소스코드의 빌드 과정을 자동으로 처리 해주는 프로그램
  • 외부 소스 코드 (외부 라이브러리) 자동 추가, 관리 (버전)

자바 빌드도구에는 3가지가 있습니다.

  1. Ant
    • 설정을 위해 xml을 사용, 간단하고 사용하기 쉽다.
    • 복잡한 처리를 하려고 하면 빌드스크립트가 복잡해지고 장황해져서 관리가 어렵다.
    • 외부 라이브러리를 관리하는 구조가 없다.
  2. Maven
    • 설정을 위해 xml을 사용한다.
    • 외부 라이브러리 관리 가능하다.
    • 장황한 빌드 스크립트 문제를 해결
    • 특정 경우에는 역시 xml이 복잡해진다.
    • xml 자체의 한계가 있다.
  3. Gradle
    • 설정을 위해 Groovy 언어를 사용한다.(Domain Specific Language)
    • 외부 라이브러리를 관리할 수 있다.
    • 유연하게 빌드 스크립트를 작성할 수 있다.
    • 성능이 뛰어나다. (캐싱이 잘됨)

Gradle 사용해보기

사실 Gradle을 반드시 설치하지 않아도 됩니다. 앞서 살펴본 특징처럼 Gradle이 설치되어 있지 않아도 Gradle Wrapper를 통해서 사용할 수 있기 때문입니다. 하지만 기본적인 사용법을 알아보기 위해 설치를 해보겠습니다.

Gradle 설치

MacOS 기준으로 간단하게 brew를 이용하면 간편합니다. 주의할 것은 설치된 JDK 또는 JRE 버전이 8 이상이어야 합니다.

$ brew install gradle

build.gradle

설치가 완료되면 빌드 파일인 build.gradle 파일을 생성해보겠습니다. build.gradle 파일은 빌드 스크립트라고 하며 엄밀히 말하면 빌드 구성 스크립트(Build Configuration Script)라고 합니다.

의존성이나 플러그인 설정 등과 같은 빌드에 필요한 설정을 하게 됩니다.

task 작성

그럼 지금부터 Gradle의 실행 작업 단위인 태스크(task)를 사용해보겠습니다. Gradle은 기본적으로 태스크를 구성하여 실행하며, 태스크를 구성하고 작성하는 것이 빌드 스크립트를 작성하는 과정입니다.

task는 아래와 같은 구조를 작성하면 됩니다.

task 태스크이름 {
    ... 작업들
}

문자열을 출력하는 간단한 태스크를 작성해보겠습니다. build.gradle 파일에 아래와 같이 작성해주면 됩니다.

task sayHello {
    println 'Hello Samuel'
}

task 실행

실행은 터미널에서 gradle 태스크이름으로 형태로 입력하면 됩니다. gradle 명령어를 사용하면 현재 위치한 경로에서 build.gradle 파일을 찾습니다. 실행할 때 -q(quiet) 옵션을 주면 오류에 대한 로그만 출력합니다.

$ gradle sayHello

gradle sayHello

> Configure project :
Hello Taeng

BUILD SUCCESSFUL in 609ms



# -q 옵션을 준 경우
$ gradle -q sayHello
Hello Samuel

✨ 참고한 포스팅 ✨

Gradle이란 무엇일까 ?
Gradle이란 무엇인가 ?? Gradle 간단 정리

0개의 댓글