빌드 관리 도구

하마·2025년 3월 19일

Spring

목록 보기
10/22

Gradle

Groovy기반의 스크립트 언어 사용
다양한 소프트웨어를 빌드(Build)할 수 있는 유연한 빌드 자동화 도구이다.

Gradle의 특징


1. 유연성

  • 복잡한 빌드 시나리오를 처리할 수 있는 유연한 시스템을 제공한다.
  • 빌드 스크립트를 통해 다양한 빌드 작업을 정의하고, 필요한 경우 커스터마이징할 수 있다.

2. 성능

  • Build Cache
    • 빌드 결과물을 캐싱하여 재사용한다.
    • 라이브러리 의존성을 캐싱하여 재사용한다.
  • 점진적 빌드
    • 마지막 빌드 호출 이후 변경된 부분만 빌드한다.
    • 변경되지 않은 부분은 캐시 결과를 검색해 재사용한다.
  • 데몬 프로세스
    • 다음 빌드 작업을 위해 백그라운드에서 대기하는 프로세스
    • 초기 빌드 이후부터는 빌드 실행 시 초기화 작업을 거치지 않는다.

3. 멀티 프로젝트 빌드 지원

  • 공통으로 사용하는 클래스를 모듈로 만들어 독립적인 각 프로젝트에서 사용할 수 있도록 한다.

4. 설정 주입 방식

  • 필요한 설정을 직접 프로젝트에 주입하는 방식이다.
  • 공통되는 정보는 묶어서 한번에 주입이 가능하다.
  • 프로젝트별로 설정을 다르게 주입할 수 있다.

build.gradle


Groovy 기반 언어의 빌드 스크립트
스크립트를 작성하면 소스 코드를 빌드하고, 라이브러리들의 의존성을 관리할 수 있다.

build.gradle의 전체 구조

1. 플러그인

  • 특정 작업을 위해 모아놓은 task들의 모음집
plugins {
    id 'java'
    id 'org.springframework.boot' version '3.1.5'
    id 'io.spring.dependency-management' version '1.1.3'
}
  • java plugin
    • 아래 task들이 추가되어 실행할 수 있게 된다.

2. 의존성 관리

  • 프로젝트에서 사용하는 라이브러리나 패키지를 관리함

  • 의존성 설정

    • 라이브러리를 추가하는 시점을 설정할 수 있다.
    • Implementation
      • 컴파일, 런타임 시점 모두에서 사용한다.
    • compileOnly
      • 컴파일할 때만 사용되고 런타임 때에는 사용하지 않는다.
    • runtimeOnly
      • 런타임 때만 사용한다.
    • testImplementation
      • 테스트할 때만 사용한다.

3. repositoryies

  • 라이브러리가 저장된 위치를 정의하고, 저장소에서 라이브러리를 가져옴
repositories {
	mavenCentral()
}

참고자료


Spring 입문 - 2주차

  • 빌드 관리 도구

0개의 댓글