SW/Gradle

Gradle: 플러그인 개발 가이드, 방법, 예제: 빌드 자동화를 더 스마트하게!

얇은생각 2025. 3. 13. 07:30
반응형

Gradle을 사용해 본 적 있다면 build automation가 얼마나 편리한지 아실 거예요. Java나 Kotlin, Android 프로젝트에서 주로 쓰이는데, 직접 플러그인을 만들어 활용하면 작업이 훨씬 수월해집니다.

이번 글에서는 Gradle 플러그인을 처음부터 만들어보고, 어떻게 실행하는지 하나씩 따라가 볼 거예요. 처음 접하는 분들도 쉽게 따라올 수 있도록 풀어서 설명했으니 부담 없이 함께 해봐요!

 

Gradle: 플러그인 개발 가이드, 방법, 예제: 빌드 자동화를 더 스마트하게!

 

왜 커스텀 Gradle 플러그인을 만들어야 할까?

일단, "왜 만들어야 할까?"라는 질문부터 떠오를 수 있어요. 단순히 Gradle configuration을 추가하는 것과 뭐가 다를까요?

  • 반복되는 작업을 자동화할 수 있어요. 여러 프로젝트에서 동일한 빌드 설정을 계속 추가하는 게 번거롭다면, 플러그인을 만들어 한 방에 해결할 수 있죠.
  • build.gradle 파일이 깔끔해져요. 빌드 파일이 길어질수록 maintenance도 어려워지는데, 플러그인을 이용하면 필요한 기능만 정리해두고 간결하게 관리할 수 있습니다.
  • scalability이 좋아요. 대형 프로젝트에서도 중복 없이 깔끔하게 빌드 설정을 유지할 수 있습니다.
  • 팀워크가 원활해져요. 모든 팀원이 동일한 빌드 규칙을 사용할 수 있도록 만들어 두면 실수도 줄어들고 collaboration도 더 편해지겠죠?

자, 이제 직접 만들어 보면서 이해해볼까요?

 

 

Gradle 플러그인 만들기 – 하나씩 따라 해보기

1. Gradle 프로젝트 열기

Gradle 프로젝트가 없다면 먼저 새로 만들어볼까요?

mkdir my-gradle-plugin
cd my-gradle-plugin
gradle init

 

2. build.gradle 수정하기

프로젝트 폴더 안에 있는 build.gradle 파일을 열어봅시다. 여기에서 필요한 기능을 추가할 거예요.

 

3. 플러그인 코드 작성하기

이제 본격적으로 코드를 작성해 볼까요? 예제로 AWS에 deployment하는 간단한 플러그인을 만들어 봅시다.

public class MyAWSPlugin implements Plugin<Project> {
    @Override
    public void apply(Project project) {
        project.getTasks().create("copyToS3", task -> {
            task.doLast(t -> {
                System.out.println("S3로 파일을 업로드 중...");
            });
        });

        project.getTasks().create("deployToEC2", task -> {
            task.doLast(t -> {
                System.out.println("AWS EC2에서 애플리케이션 실행 완료!");
            });
        });
    }
}

 

4. 플러그인 적용하기

이제 우리가 만든 플러그인을 build.gradle에서 적용해봅시다.

apply plugin: 'myAWSPlugin'

 

저장한 후, 터미널로 이동하세요.

 

5. Gradle task 실행하기

플러그인이 정상적으로 적용되었는지 확인하려면 아래 명령어를 입력해보세요.

gradle tasks

 

오류 없이 빌드가 잘 되었다면, 이제 실제로 태스크를 실행해 볼 차례입니다.

gradle copyToS3

 

출력 결과:

S3로 파일을 업로드 중...

 

다음으로, 아래 명령어도 실행해볼까요?

gradle deployToEC2

 

출력 결과:

AWS EC2에서 애플리케이션 실행 완료!

 

6. 태스크 간 의존성 설정하기

deployToEC2 태스크를 실행하기 전에 copyToS3가 먼저 실행되도록 하고 싶다면 어떻게 해야 할까요?

task deployToEC2 {
    dependsOn copyToS3
}

 

이제 아래 명령어를 실행하면,

gradle deployToEC2

 

자동으로 copyToS3를 먼저 실행한 다음, deployToEC2가 실행됩니다. 이렇게 하면 배포 과정이 한층 더 원활해지겠죠?

 

마무리하며

자, 오늘은 Gradle 플러그인을 직접 만들어봤어요! 간단하게 정리해 볼까요?

  • Gradle 플러그인 클래스를 만들고 적용하는 방법
  • 새로운 빌드 태스크를 정의하고 실행하는 법
  • 태스크 간 의존성을 설정하는 방법

 

이제 커스텀 플러그인을 만들어 빌드 logic을 정리하고, 재사용 가능한 형태로 쉽게 관리할 수 있게 되었어요. 배포 자동화, testing 실행, 추가적인 빌드 태스크까지 얼마든지 확장할 수 있습니다.

다음에는 좀 더 심화된 내용을 다룰 예정이니 기대해 주세요!

  • Gradle 플러그인을 repository에 배포하는 방법
  • 동적으로 Gradle 태스크를 추가하는 법
  • 빌드 자동화 pipeline 만들기

 

Gradle이 이제 좀 더 친숙해졌나요? 그럼 다음에 또 만나요! 🚀

반응형