[Spring 입문] 빌드 관리 도구

박화랑·2025년 3월 17일

Spring_개념정리

목록 보기
9/17

빌드 관리 도구

1. Gradle이란?

  • Java와 유사한 문법 구조를 가진 Groovy 기반의 스크립트 언어를 사용하여 다양한 소프트웨어를 빌드할 수 있는 유연한 빌드 자동화 도구

빌드(Build)란?

  • 소스 코드를 컴퓨터가 실행 가능한 파일로 변환하는 작업
  • 빌드 과정에는 컴파일, 패키징, 테스트, 배포 등 여러 단계가 포함됨

빌드 자동화 도구란?

  • 빌드, 라이브러리 관리, 테스트, 배포 등의 과정을 자동화하여 수행하는 도구
  • 대표적인 빌드 자동화 도구: Gradle, Maven, Ant

2. Gradle의 특징

  1. 유연성

    • 복잡한 빌드 시나리오를 처리할 수 있는 강력한 기능 제공
    • 빌드 스크립트를 활용하여 다양한 작업을 정의하고 커스터마이징 가능
  2. 성능 최적화

    • Build Cache: 빌드 결과물과 라이브러리 의존성을 캐싱하여 재사용
    • 점진적 빌드: 변경된 부분만 빌드하여 불필요한 작업 최소화
    • 데몬 프로세스: 백그라운드에서 대기하여 빌드 실행 속도 향상
  3. 멀티 프로젝트 빌드 지원

    • 공통으로 사용하는 클래스를 모듈화하여 여러 프로젝트에서 재사용 가능
  4. 설정 주입 방식

    • 프로젝트별로 다른 설정을 적용 가능하며, 공통 설정을 묶어서 일괄 적용 가능

3. build.gradle이란?

  • Groovy 기반의 빌드 스크립트로, 소스 코드 빌드 및 라이브러리 의존성 관리를 수행

build.gradle 전체 구조

plugins {
    id 'java'
    id 'org.springframework.boot' version '3.1.5'
    id 'io.spring.dependency-management' version '1.1.3'
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
    runtimeOnly 'com.mysql:mysql-connector-j'
}

repositories {
    mavenCentral()
}

1) 플러그인 설정

  • 특정 작업을 수행하기 위한 task들의 모음집
plugins {
    id 'java'
    id 'org.springframework.boot' version '3.1.5'
    id 'io.spring.dependency-management' version '1.1.3'
}
  • java 플러그인: Java 프로젝트를 위한 기본 빌드 기능 제공
  • spring-boot 플러그인: Spring Boot 애플리케이션을 실행할 수 있도록 설정

2) 의존성 관리

  • 프로젝트에서 사용하는 라이브러리 및 패키지 관리
dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    implementation 'org.springframework.boot:spring-boot-starter-web'
    runtimeOnly 'com.mysql:mysql-connector-j'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

의존성 설정 방법

설정 옵션설명
implementation컴파일 & 런타임 모두에서 사용
compileOnly컴파일할 때만 사용 (런타임 미포함)
runtimeOnly런타임에서만 사용 (컴파일 미포함)
testImplementation테스트 환경에서만 사용

3) 라이브러리 저장소 (repositories)

  • 라이브러리가 저장된 위치를 정의하고, 저장소에서 라이브러리를 가져옴
repositories {
    mavenCentral()
}
  • mavenCentral(): Maven Central Repository에서 라이브러리를 다운로드

정리

  • Gradle: 유연하고 강력한 빌드 자동화 도구
  • build.gradle: Gradle의 빌드 스크립트로 프로젝트 빌드 및 의존성 관리 수행
  • Gradle 주요 개념: 플러그인, 의존성 관리, 라이브러리 저장소 설정
profile
개발자 희망생

0개의 댓글