4.4 KiB
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 기반 테스트를 실행한다.