SW/Gradle

Gradle: 쉽고 재밌게 배우는 멀티 모듈 Gradle 프로젝트

얇은생각 2025. 2. 15. 07:30
반응형

시작하며

Gradle을 쓰다 보면 프로젝트가 커지면서 관리가 점점 힘들어질 때가 있어요. 기능이 많아질수록 코드도 복잡해지고요. 이런 상황에서 멀티 모듈 구조를 사용하면 프로젝트를 훨씬 깔끔하게 정리할 수 있습니다. 다행히 Gradle 6.6 버전부터 멀티 모듈을 기본적으로 지원해서 설정도 예전보다 쉬워졌어요.

이 글에서는 멀티 모듈 Gradle 프로젝트를 처음부터 하나씩 만들어보는 과정을 가볍게 설명할게요. 읽다 보면 다음을 배우게 될 거예요:

  • 멀티 모듈 프로젝트를 빠르고 간편하게 설정하는 법
  • 모듈별로 빌드 로직을 효율적으로 관리하는 요령
  • 프로젝트를 더 정리된 형태로 유지하는 팁

개발 경험이 많든 적든, 편하게 따라오시면 됩니다. 부담 없이 시작해볼까요?

 


 

쉽고 재밌게 배우는 멀티 모듈 Gradle 프로젝트

 

왜 멀티 모듈 Gradle이 필요할까?

본격적으로 코딩에 들어가기 전에, 멀티 모듈 프로젝트가 왜 좋은지 먼저 얘기해 볼게요. 간단히 말하면, 하나의 Gradle 프로젝트 안에서 여러 개의 서브 프로젝트(모듈)를 관리하는 방식이에요. 이렇게 하면 기능별로 나누기 쉬워지고, 유지보수도 훨씬 간편해집니다.

멀티 모듈 구조의 장점

코드 재사용이 쉬워요 – 공통 기능을 모듈로 만들어두면 필요할 때마다 가져다 쓸 수 있어요.

독립적인 개발이 가능해요 – 각 모듈을 따로 개발하고 테스트할 수 있어서 코드 수정이 한결 수월합니다.

빌드 속도가 빨라요 – Gradle이 변경된 부분만 다시 빌드해 주기 때문에 전체 빌드 시간을 줄일 수 있어요.

구조가 깔끔해져요 – 기능별로 모듈을 나누면 프로젝트가 체계적으로 정리돼서 유지보수가 편리해집니다.

특히 Gradle 6.6 이후 버전에서는 기본적으로 멀티 모듈 프로젝트를 지원하기 때문에, 예전처럼 복잡한 설정 없이 바로 시작할 수 있습니다.

 


 

멀티 모듈 Gradle 프로젝트 만들기

1. 프로젝트 초기화

Gradle 6.6 이상에서는 새 프로젝트를 만들면 기본적으로 app 모듈이 포함됩니다. 터미널에서 다음 명령어를 입력해 주세요:

gradle init

 

Java 프로젝트를 선택하고 최신 Gradle 버전을 사용하면 아래와 같은 폴더 구조가 자동으로 생성됩니다.

my-multi-module-project/
│── app/
│   ├── src/
│   ├── build.gradle
│── settings.gradle
│── build.gradle

 

2. 프로젝트 구조 이해하기

  • app/ – Gradle이 자동으로 생성하는 기본 서브 모듈
  • settings.gradle – 프로젝트에 포함된 모듈을 정의하는 파일
  • build.gradle (루트 프로젝트) – 전체 프로젝트에서 공통으로 사용할 설정을 담는 파일

Gradle 6.6 이상에서는 settings.gradle 파일에 다음과 같은 코드가 포함됩니다.

rootProject.name = 'my-multi-module-project'
include 'app'

 

3. 새로운 모듈 추가하기

이제 coreutils 두 개의 모듈을 추가해 보겠습니다.

mkdir core
mkdir utils

 

각 모듈 폴더에 build.gradle 파일을 만들고 다음과 같이 설정하세요.

 

core/build.gradle

plugins {
    id 'java'
}

dependencies {
    implementation project(':utils')
}

 

utils/build.gradle

plugins {
    id 'java'
}

 

그리고 settings.gradle을 수정해서 새 모듈을 추가해 줍니다.

rootProject.name = 'my-multi-module-project'
include 'app', 'core', 'utils'

 

4. 공통 의존성 관리하기

각 모듈에서 별도로 의존성을 설정하는 대신, 루트 build.gradle 파일에서 공통 설정을 적용하면 관리가 훨씬 쉬워집니다.

subprojects {
    apply plugin: 'java'

    repositories {
        mavenCentral()
    }

    dependencies {
        testImplementation 'junit:junit:4.13.2'
    }
}

 

이제 모든 모듈에서 JUnit을 기본 테스트 프레임워크로 사용할 수 있어요.

 

5. 빌드하고 실행해보기

이제 프로젝트를 빌드해 볼까요? 터미널에서 다음 명령어를 실행하세요.

gradle build

 

Gradle이 모든 모듈을 빌드하고, 의존성이 올바르게 설정되었는지 확인합니다.

다음으로, app 모듈에 메인 클래스를 추가한 후 실행해 봅니다.

 

app/src/main/java/App.java

public class App {
    public static void main(String[] args) {
        System.out.println("멀티 모듈 Gradle 프로젝트 시작!");
    }
}

 

그리고 실행 명령어는 다음과 같습니다.

gradle run

 


 

마무리하며

이제 멀티 모듈 Gradle 프로젝트의 기본 개념과 설정 방법을 이해했어요! 간단하게 정리하자면:

✅ Gradle 6.6 이상에서는 멀티 모듈 프로젝트가 기본 설정으로 제공됩니다.

settings.gradle을 활용하면 여러 모듈을 쉽게 추가할 수 있어요.

✅ 공통 의존성은 루트 build.gradle에서 한 번에 관리하면 편리합니다.

✅ 모듈을 나누면 프로젝트가 정리되고 유지보수가 훨씬 쉬워집니다.

이제 직접 프로젝트를 만들어 보면서 익숙해져 보세요! 멀티 모듈 프로젝트를 활용하면 더 큰 규모의 애플리케이션을 효율적으로 개발할 수 있을 거예요.

반응형