Files
gradle-examples/doc/13_spring boot.md
2025-02-22 01:13:24 +09:00

4.4 KiB

Spring Boot 프로젝트

Spring Boot는 빠른 개발과 배포를 목표로 하는 프레임워크로, Gradle을 사용하면 프로젝트 빌드, 의존성 관리, 테스트 및 배포 자동화가 더욱 효율적이 된다.

Spring Boot는 Gradle을 사용하여 다음과 같은 이점을 제공한다.

  • 빠른 빌드 속도: Gradle의 캐싱 및 병렬 빌드 기능 덕분에 빌드 시간이 단축된다.
  • 유연한 빌드 설정: Kotlin DSL을 사용하여 직관적으로 빌드 스크립트를 작성할 수 있다.
  • 의존성 관리 용이: dependencies 블록을 활용해 손쉽게 라이브러리를 추가할 수 있다.
  • 자동화된 빌드 및 테스트: CI/CD와 연계하여 빌드 및 테스트를 자동화할 수 있다.

Spring Boot 프로젝트 생성 및 Gradle 설정

Spring Boot 프로젝트를 Gradle 기반으로 생성하려면 Spring Initializr를 사용할 수 있다.

Spring Initializr 에 접속한 후 다음을 선택한다.

  • Project: Gradle - Kotlin 또는 Gradle - Groovy
  • Language: Java (또는 Kotlin)
  • Spring Boot Version: 최신 안정 버전
  • Dependencies: 필요한 라이브러리 추가

CLI를 사용하여 프로젝트를 생성하는 방법

curl https://start.spring.io/starter.zip \
  -d type=gradle-project \
  -d language=java \
  -d bootVersion=3.1.2 \
  -d dependencies=web,data-jpa,h2 \
  -o demo.zip

이후 압축을 풀고 프로젝트 디렉터리로 이동한다.

unzip demo.zip
cd demo

Spring Boot Gradle 프로젝트의 기본 build.gradle.kts 파일은 다음과 같다.

plugins {
    id("org.springframework.boot") version "3.1.2"
    id("io.spring.dependency-management") version "1.1.3"
    kotlin("jvm") version "1.8.22"
    kotlin("plugin.spring") version "1.8.22"
}

group = "com.example"
version = "1.0.0"
java.sourceCompatibility = JavaVersion.VERSION_17

repositories {
    mavenCentral()
}

dependencies {
    implementation("org.springframework.boot:spring-boot-starter-web")
    implementation("org.springframework.boot:spring-boot-starter-data-jpa")
    implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
    implementation("org.jetbrains.kotlin:kotlin-reflect")
    runtimeOnly("com.h2database:h2")

    testImplementation("org.springframework.boot:spring-boot-starter-test")
}

tasks.withType<Test> {
    useJUnitPlatform()
}

주요 설정

플러그인 설정

plugins {
    id("org.springframework.boot") version "3.1.2"
    id("io.spring.dependency-management") version "1.1.3"
    kotlin("jvm") version "1.8.22"
    kotlin("plugin.spring") version "1.8.22"
}
  • org.springframework.boot → Spring Boot 플러그인 적용
  • io.spring.dependency-management → 의존성 자동 관리
  • kotlin("jvm") → Kotlin JVM 환경 설정
  • kotlin("plugin.spring") → Spring Boot와 Kotlin 호환성 플러그인

의존성 관리

dependencies {
    implementation("org.springframework.boot:spring-boot-starter-web")
    implementation("org.springframework.boot:spring-boot-starter-data-jpa")
    implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
    runtimeOnly("com.h2database:h2")
    
    testImplementation("org.springframework.boot:spring-boot-starter-test")
}
  • implementation → 실행 시 필요한 라이브러리
  • runtimeOnly → 실행할 때만 필요한 라이브러리 (예: H2 데이터베이스)
  • testImplementation → 테스트 코드에서만 사용하는 라이브러리

저장소 설정

repositories {
    mavenCentral()
}

Maven Central 저장소에서 필요한 라이브러리를 가져온다.

테스트 설정

tasks.withType<Test> {
    useJUnitPlatform()
}

JUnit 5 (JUnit Platform) 기반의 테스트를 실행하도록 설정

Gradle 태스크

애플리케이션 실행

./gradlew bootRun

Spring Boot 애플리케이션을 실행한다.

빌드 및 실행 가능한 JAR 생성

./gradlew bootJar

build/libs/ 디렉터리에 실행 가능한 JAR 파일이 생성된다.

java -jar build/libs/demo-1.0.0.jar

생성된 JAR 파일을 실행한다.

종속성 확인

./gradlew dependencies

프로젝트에 포함된 의존성을 확인할 수 있다.

테스트 실행

./gradlew test
  • JUnit 기반 테스트를 실행한다.