build.gradle은 무엇인가? build.gradle은 파일 자체가 Project 오브젝트(객체)로, Project 오브젝트는 Project 인터페이스를 구현하는 구현체이다. Project 오브젝트는 Project 단위에서 필요한 작업을 수행하기 위해 모든 메서드와 프로퍼티를 모아놓은 슈퍼 객체이다. public interface Project extends Comparable, ExtensionAware, PluginAware { .. } 우리가 build.gradle에 작성하는 수많은 코드들은 모두 Project 오브젝트의 프로퍼티와 메서드가 되며, Project 오브젝트는 프로젝트 이름부터 변수, 메서드를 모두 포함하는 객체가 된다. Project 오브젝트는 내부에 수많은 메서드(Methods..
CI, CD
Groovy란? Groovy란 JVM위에서 동작하는 동적 타입 프로그래밍 언어이다. Java뿐만 아니라 Python, Ruby 등에 많은 영향을 받은 프로그래밍 언어로 문법이 간결하다. 하지만, 사실상 대부분 Gradle Script를 작성하기 위해 사용되고 있으며, Gradle Kotlin이 등장하고 나서는 Gradle Groovy를 Gradle Kotlin으로 많이 전환하는 추세이다. Java 생태계의 대부분인 Android나 Spring이 Kotlin으로 작성 가능한데, Build Script 작성을 위해 별도의 언어를 배운다는 점이 부담스럽기 때문이다. 또한 Groovy는 별도로 프로젝트를 구성하지 않으면 자동완성이 안된다는 문제가 있어 자동완성이 되는 Kotlin으로 빌드 스크립트를 작성하는 것..
Intellij에서 Groovy 프로젝트 만들기 Intellij에서 Groovy 프로젝트를 만들기 위해서는 Groovy SDK를 다운 받아 Intellij에 경로를 설정해주어야 한다. Groovy SDK 다운 받기 1. https://groovy.apache.org/download.html 에서 Download 4.0.0 버튼을 눌러 Groovy를 다운 받는다. 글 작성 시점 기준으로 최신 버전은 4.0.0 버전이다.
Gradle이 동작하는 순서 Gradle은 Initialization, Configuration, Execution 세가지 Step을 통해 작업을 수행한다. 💡 Gradle이 동작하는 순서 1. Initialization 2. Configuration 3. Execution Initialization Initialization step에서는 gradle은 settings.gradle.kts를 읽어 프로젝트 이름이 무엇인지, 프로젝트에는 어떤 모듈들이 있는지를 확인한다. 멀티 모듈 프로젝트 일 때는 각 모듈 별로 build.gradle.kts 파일이 있는지 이 단계에서 확인한다. 예를 들어 settings.gradle.kts가 다음과 같을 때를 살펴보자. rootProject.name = "KotlinPr..
implementation과 api, compile build.gradle에서 사용하는 implementation과 api는 모두 라이브러리를 적용시키는 키워드이다. 오래된 Gradle 버전에는 implementation이 없어서 compile을 사용했고, 새로운 버전(6.x 이후 버전)에서 compile이 deprecated 되면서 compile 대신에 api 키워드가 사용되게 되었다. 이 때문에 오래된 프로젝트들의 build.gradle 파일들을 보면 api와 compile을 implementation 대신 쓰는 것을 볼 수 있다. 즉, api와 compile은 같은 역할을 한다. 하지만 Gradle은 api나 compile를 사용하는 것을 권장하지 않는다. api를 통해 라이브러리를 가져올 경우 라..