Spring Boot

Gradle 그레이들이란?

위한1214 2022. 8. 24. 16:10

Gradle그레이들은 빌드 도구다.

그레이들은 Groovy를 이용한 빌드 자동화 시스템이다.

빌드 자동화는 소프트웨어 개발자가 반복적으로 입력해야하는 코드를 프로세스를 통해 자동으로 실행하는 일련의 작업방식을 뜻한다.

다시 말해, 라이브러리의 추가와 버전 동기화를 위해 등장한 시스템이다.

 

 

Gradle의 특징

  • 오픈 소스 기반의 빌드 자동화 시스템으로 Groovy 기반 DSL(Domain-Specific Language)로 작성
  • Build-by-convention을 바탕으로 해 스크립트 규모가 작고 읽기 쉬움
  • Multi 프로젝트 빌드를 지원하기 위해 설계됨
  • 설정 주입 방식(Configuration Injection)

따라서 초기 프로젝트 설정에 드는 시간을 절약할 수 있으며,

기존에 있던 Ant나 Maven 같은 빌드 도구들과도 호환이 가능하다.

 

 


 

그레이들로 Gson 라이브러리를 다운로드 해 보자.

 

아래 링크는 라이브러리가 모여 있는 홈페이지다.

들어가서 gson을 검색하자.

https://mvnrepository.com/

 

 

Files에서 선택하지 않는다.

Gradle 탭으로 들어가 Ctrl + C로 복사하자.

 

 

프로젝트의 build.gradle 파일로 들어간다.

 

 

dependencies의존성 메소드에 복사한 것을 붙여넣는다.

단축키: Ctrl + V

 

 

dependencies 메소드와 의존성 옵션(위 캡처 화면의 흰색 글자들) 간단 정리

더보기

dependencies 메소드

  • 이행적 의존성이 아닌 일반 파일로 저장된 외부 라이브러리도 지원한다.
  • 빌드 스크립트에서 직접 의존성을 지정한다.

 

의존성 옵션들(위 캡처 화면에서 흰색 글자들)에 대해 간단히 설명하겠다.

 

implementation

implementaion을 사용하면, A 모듈을 수정할 때 A를 직접적으로 의존하는 모듈까지만 rebuild리빌드하여 빠르다.

또 A 모듈을 의존하는 모듈들은 해당 라이브러리의 API를 사용할 수 없다.

장점

  • 빠르다
  • API 노출을 막는다.

사용자에게 필요 이상의 API를 노출하는 것은 불필요하다(Facade 패턴).

 

api

의존 라이브러리 수정 시 본 모듈을 의존하는 모듈들도 재빌드한다.

본 모듈을 의존하는 모듈들도 해당 라이브러리의 api를 사용할 수 있다.

 

compileOnly

compile 시에만 빌드하고 빌드 결과물에는 포함하지 않는다.

runtime런타임 시 필요 없는 라이브러리인 경우에 사용한다. 

(ex. runtime 환경에 이미 라이브러리가 제공되고 있는 경우)

 

annotaionProcessor

annotaion processor 명시

(ex. Lombok)

 

testImplementation

테스트 코드를 수행할 때만 적용한다.

 

runtimeOnly

runtime 시에만 필요한 라이브러리인 경우에 사용한다.

 

 

이런 식으로 글자만 적으면 알아서 라이브러리를 다운로드 해 주고 buildpath까지 해 주는 것을 의존성 관리 도구, Gradle이라고 한다.

라이브러리를 이 프로젝트에서 지우고 싶을 때는 해당하는 코드만 지우면 된다.

이때 다운로드한 라이브러리 파일가지 삭제되는 게 아니라, build만 날아간다.

다음에 사용할 때 다운로드하지 않아도 되기 때문이다.

그러면 다음번에는 다운로드 받지 않고 build만 된다.

 

 


 

같은 방법으로 Json simple 라이브러리도 추가하자.

https://mvnrepository.com/artifact/com.googlecode.json-simple/json-simple/1.1.1

 

 

 


 

원래 그레이들은 하나의 프로그램(Tool)이라 따로 설치해야 사용이 가능하지만,

우리는 스프링 프로젝트를 만들 때 그레이들 프로그램 실행 파일이 설치되도록 설정했다.

gradlew가 바로 그것이다.

gradlew는 설명 파일이고, gradlew.bat이 실행 파일이다.

 

 

 

 

 

이하는 참고 글

 

https://codecrafting.tistory.com/1

 

그래이들(Gradle)이란 무엇인가?

인텔리제이로 새 프로젝트를 생성할 때 프로젝트 유형을 그레이들로 선택한다. 이후 ArtifactId 와 GroupId를 등록한다. 이 설정이 끝나면 그레이들 기반의 자바 프로젝트가 생성된다. 그래이들 = 빌

codecrafting.tistory.com

https://cantcoding.tistory.com/59

 

Gradle 의존성 옵션 정리(Compile VS implementation,옵션)

Gradle 이란? 그래들(이하 Gradle)은 그루비(Groovy)를 기반으로 한 빌드 도구. Ant와 Maven과 같은 이전 세대 빌드 도구의 단점을 보완하고 장점을 취합하여 만든 오픈소스로 공개된 빌드 도구. 처음 Spri

cantcoding.tistory.com

https://jaewon2336.tistory.com/224?category=541782 

 

스프링 5강. Gradle

https://mvnrepository.com/ 글자만 적으면 라이브러리를 다운로드하여주고 뿐만 아니라 buildpath까지 자동으로 시켜준다. 이것을 의존성 관리 도구, Gradle이라고 한다. 성공적으로 gson 라이브러리가 받..

jaewon2336.tistory.com

 

'Spring Boot' 카테고리의 다른 글

Spring/applicaion.yml 설정 파일  (0) 2022.08.25
프로젝트 구조  (0) 2022.08.25
IntelliJ/Spring Boot 인텔리제이 세팅  (0) 2022.08.23
JAVA/JDK 1.8 설치 및 환경 변수 설정  (0) 2022.08.23