Gradle이란

2022. 12. 13. 20:54·Gradle
반응형

Gradle 공부 필요성을 느껴서 Gradle 철저 입문이라는 책을 중고로 구매해 읽고 공부 기록을 남기려고 합니다.

절판되어서 무려 가격이 1.7배였는데 눈물을 흘리며 이를 구매했습니다. 

바로 시작하겠습니다.

Gradle (그레이들)

  • 그레이들은 차세대 빌드 툴로, 주목받는 오픈 소스 제품이다.
  • 그레이들이 주목 받는 이유는 기존 빌드 툴보다 우수한 점이 많기 때문이다.
  • 가장 큰 장점은 빌드 스크립트를 간단하게 작성할 수 있다는 점이다.
  • 또한 스크립트가 간단해서 배우기도 쉽고 읽기도 쉬워 처리 내용을 금방 이해할 수 있다.
  • 그레이들의 또 다른 특징으로는 앤트나 메이븐 같은 기존 빑드 툴의 기능과 시스템도 활용할 수 있다는 것이다.
  • 즉 그레이들은 앤트 태스크나 앤트 빌드 스크립트, 메이븐 저장소를 이용할 수 있어서 과거에 축적한 자원을 활용할 수 있다.
  • 단 메이븐의 플러그인은 사용할 수 없다.

빌드 툴이란

소프트웨어 개발에서 대부분의 작업은 정형화 되어 있다. 자바 애플리케이션을 예르 들면 다음과 같은 작업들이 필요하다.

 

  • 소스코드 (.java)를 컴파일 해서 클래스 파일(.class)를 생성한다.
  • 코딩 규약에 맞게 작성했는지 확인한다.
  • 코드를 정적으로 해석한다.
  • 테스트를 하고 테스트 결과나 커버리지 측정 결과를 리포트로 출력한다.
  • Javadoc과 같은 문서를 작성한다.
  • 클래스 파일과 리소스 파일을 패키징해서 압축 파일을 만든다. (.jar와 .war)
  • 압축 파일을 테스트 환경이나 스테이징 환경에 배포한다.
  • 압축 파일을 저장소에 등록한다.

빌드 툴이란 이런 정형화된 작업을 자동화하기 위한 소프트웨어다.

빌드 툴은 소프트웨어를 개발하면서 있을 수 있는 다양한 문제들을 손쉽게 해결할 수 있게 도와준다.

 

일반적인 빌드 툴에서는 빌드 순서를 빌드 스크립트로 작성해서 실행하면 다양한 작업을 자동화할 수 있다.

이는 빌드 메뉴얼이 문서에서 실행 가능한 프로그램 형태로 바뀐다는 것을 의미한다.

빌드 메뉴얼이 실행 가능한 형태가 되면 다음과 같은 장점이 있다.

 

  • 정형화된 작업에 사람이 관여하지 않아도 되니 실수가 줄어든다.
  • 빌드 스크립트는 항상 관리되므로 문서처럼 낡은 정보가 될 위험이 줄어든다.
  • 조건 분기를 이용해 각 환경에 따른 처리를 할 수 있다. (어디까지 가능한지는 빌드 툴의 기능에 달려있다.)

참고 - 빌드 툴의 역사

순서는 메이크 -> 앤트 -> 메이븐 -> 그레이들 순이다.

 

  • 메이크 : 빌드 개념을 확립.
  • 앤트: 범용성을 높였다. (크로스 플랫폼 대응)
  • 메이븐: 빌드 스크립트 작성 효율을 높였다. (규칙 기반), POM 개념 도입.
  • 그레이들: 유연성을 높였다. (스크립트 언어로 회귀)

그레이들 개요

그레이들의 주요 특징은 다음과 같다.

 

  • 확장 가능한 그레이들 빌드 언어(DSL) 제공
  • 빌드 분할이나 공통 컴포넌트 추출 등을 체계화하기 쉬움
  • IDE와 연계해서 그레이들을 외부에서 제어할 수 있는 API 제공
  • 변경 내역 빌드나 병렬 빌드와 같은 빌드 효율화
  • 멀티 프로젝트를 지원하는 유연성
  • 메이븐/아이비 저장소부터 로컬 파일 시스템까지 다양한 의존관계 관리 기법 대응
  • 앤트 태스크뿐만 아니라 앤트 프로젝트 전체와 통합 가능
  • 빌드 스크립트 작성 언어로 그루비 이용
  • 그레이들 래퍼를 이용해서 그레이들이 설치되지 않은 환경에서도 빌드 가능
  • 호환성 배려

그레이들 장점

  • 빌드 스크립트 생산성이 높다.
  • 빌드 순서를 제어하기 쉽다.
  • 멀티 프로젝트에 대응한다.
  • 컴포넌트로 만들기 쉽다.
  • 별도로 설치할 필요가 없다. 
  • 호환성을 최대한 배려한다.

이상으로 그레이들 학습 첫 포스팅을 마칩니다.

 

참고 

Gradle 철저 입문 1장

반응형
'Gradle' 카테고리의 다른 글
  • 그레이들의 빌드 (Gradle Build)
Debin
Debin
공부 기록을 남기며 게시글 리팩토링을 진행하는 블로그입니다.
  • Debin
    리팩토링하는 블로그
    Debin
  • 전체
    오늘
    어제
    • 분류 전체보기
      • DB
        • DB 기초
        • MySQL
        • SQL 튜닝
      • OS
      • Network
      • Git
      • 디지털콘텐츠기획
      • 소프트웨어공학
      • 코딩테스트
        • 프로그래머스
        • 백준
        • 인프런
      • 공부 일지
      • 독서
        • 클린코드
        • 일상 속 사물이 알려주는 웹 API 디자인
        • 토비의 스프링
        • 객체지향의 사실과 오해
        • 자바 잘 읽는 법
      • 기록 및 회고
      • Cloud
        • AWS
      • 개발
        • Java
        • Spring Core
        • Spring MVC
        • Spring DB
        • Spring Boot
        • Spring Security
        • Spring Batch
        • JPA
        • Test
        • Android
      • 대외활동
        • UMC SERVER
        • 카엔프 SW 아카데미
      • 프로젝트
      • Docker
      • Gradle
      • ELK
      • 실무 이야기
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 깃허브
  • 공지사항

    • 본인 깃허브입니다!
  • 인기 글

  • 태그

    스프링
    도커
    spring mvc
    ORM
    redis
    프록시
    mysql
    데이터베이스
    운영체제
    트랜잭션
    토비의 스프링
    SQL
    spring boot
    AWS
    인덱스
    스프링 부트
    자바
    spring
    코딩 #개발자 #노마드북클럽 #노개북
    innodb
    리눅스
    객체
    Java
    객체지향
    JPA
    컨테이너
    test
    container
    AOP
    docker
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
Debin
Gradle이란
상단으로

티스토리툴바