[Spring Boot] 스프링 프로젝트 시작하기

조애옹·2025년 6월 15일

🔗 Spring Initializr

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 WebREST API, 웹 MVC 기능 제공
Spring Boot DevTools자동 재시작 및 LiveReload 등 개발 편의 기능
LombokGetter/Setter, 생성자 등을 어노테이션으로 자동 생성
Spring Data JPAORM 기반 DB 연동 (Hibernate 포함)
H2 Database인메모리 DB (테스트/개발용)

2) DB 연동용

의존성용도
MySQL DriverMySQL DB 연동
PostgreSQL DriverPostgreSQL DB 연동
Spring JDBCJPA 대신 순수 JDBC를 사용할 때
Flyway 또는 LiquibaseDB 마이그레이션 관리 도구

3) 보안/인증

의존성용도
Spring Security로그인, 인가/인가, 인증 처리
OAuth2 Client구글, 카카오, 네이버 등 소셜 로그인 처리
JWT (라이브러리 별도 추가)토큰 기반 인증 처리 (예: jjwt, auth0 등)

4) 테스트용

의존성용도
Spring Boot Starter TestJUnit, Mockito 등 통합 테스트 환경 제공
TestcontainersDocker 기반 통합 테스트 (예: DB, Redis 등)

5) 그 외 유용한 것들

의존성용도
Validation (spring-boot-starter-validation)@Valid, @NotNull 등 입력값 검증
Thymeleaf서버 사이드 템플릿 엔진 (웹 페이지 렌더링용)
Spring Cache / Redis캐싱 기능 (DB 부하 감소)
Actuator서버 상태, 메트릭 등 모니터링용 엔드포인트 제공
WebSocket실시간 통신 처리
profile
아자잣

0개의 댓글