
build.gradle.kts
plugins {
java
id("org.springframework.boot") version "3.5.0"
id("io.spring.dependency-management") version "1.1.7"
}
group = "com"
version = "0.0.1-SNAPSHOT"
java {
toolchain {
languageVersion = JavaLanguageVersion.of(21)
}
}
configurations {
compileOnly {
extendsFrom(configurations.annotationProcessor.get())
}
}
repositories {
mavenCentral()
}
dependencies {
implementation("org.springframework.boot:spring-boot-starter-data-jpa")
implementation("org.springframework.boot:spring-boot-starter-web")
compileOnly("org.projectlombok:lombok")
developmentOnly("org.springframework.boot:spring-boot-devtools")
runtimeOnly("com.h2database:h2")
annotationProcessor("org.projectlombok:lombok")
testImplementation("org.springframework.boot:spring-boot-starter-test")
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
}
tasks.withType<Test> {
useJUnitPlatform()
}
✅ 자주 추가하는 의존성
보통 다음 조합으로 시작:
Spring Web + Lombok + Spring Data JPA + MySQL Driver + Validation + DevTools
1) 기본 개발용 필수 의존성
| 의존성 | 용도 |
|---|
| Spring Web | REST API, 웹 MVC 기능 제공 |
| Spring Boot DevTools | 자동 재시작 및 LiveReload 등 개발 편의 기능 |
| Lombok | Getter/Setter, 생성자 등을 어노테이션으로 자동 생성 |
| Spring Data JPA | ORM 기반 DB 연동 (Hibernate 포함) |
| H2 Database | 인메모리 DB (테스트/개발용) |
2) DB 연동용
| 의존성 | 용도 |
|---|
| MySQL Driver | MySQL DB 연동 |
| PostgreSQL Driver | PostgreSQL DB 연동 |
| Spring JDBC | JPA 대신 순수 JDBC를 사용할 때 |
| Flyway 또는 Liquibase | DB 마이그레이션 관리 도구 |
3) 보안/인증
| 의존성 | 용도 |
|---|
| Spring Security | 로그인, 인가/인가, 인증 처리 |
| OAuth2 Client | 구글, 카카오, 네이버 등 소셜 로그인 처리 |
| JWT (라이브러리 별도 추가) | 토큰 기반 인증 처리 (예: jjwt, auth0 등) |
4) 테스트용
| 의존성 | 용도 |
|---|
| Spring Boot Starter Test | JUnit, Mockito 등 통합 테스트 환경 제공 |
| Testcontainers | Docker 기반 통합 테스트 (예: DB, Redis 등) |
5) 그 외 유용한 것들
| 의존성 | 용도 |
|---|
Validation (spring-boot-starter-validation) | @Valid, @NotNull 등 입력값 검증 |
| Thymeleaf | 서버 사이드 템플릿 엔진 (웹 페이지 렌더링용) |
| Spring Cache / Redis | 캐싱 기능 (DB 부하 감소) |
| Actuator | 서버 상태, 메트릭 등 모니터링용 엔드포인트 제공 |
| WebSocket | 실시간 통신 처리 |