1. 소개
1. Spring Boot Starter란?
Spring Boot Starter는 특정 기능을 쉽게 설정하고 사용할 수 있도록 도와주는 라이브러리 모음이다.
일반적으로 여러 라이브러리를 함께 조합해야 하는 경우가 많은데, Starter를 사용하면 번거로운 설정 없이 필요한 기능을 바로 적용할 수 있습니다.
2. 특징
1. 의존성 관리 편리
- 필요한 라이브러리를 한 번에 추가 가능
2. 자동 설정 지원
- 추가적인 설정 없이도 기본 기능 제공
3. 버전 관리 용이
- Spring Boot 버전에 맞춰 호환되는 라이브러리 제공
3. 주요 모듈
1. 웹 애플리케이션 관련
- spring-boot-starter-web: RESTful API 개발 및 웹 애플리케이션을 위한 기본적인 설정 포함 (Tomcat도 포함)
- spring-boot-starter-webflux: 리액티브 프로그래밍을 위한 WebFlux 제공
2. 데이터 처리 관련
- spring-boot-starter-data-jpa: JPA 및 Hibernate 설정 포함
- spring-boot-starter-jdbc: JDBC를 활용한 데이터베이스 연동
- spring-boot-starter-data-redis: Redis를 쉽게 사용할 수 있도록 지원
3. 보안 관련
- spring-boot-starter-security: Spring Security 기본 설정 제공
- spring-boot-starter-oauth2-client: OAuth2 로그인 및 클라이언트 인증 지원
4. 테스트 및 기타
- spring-boot-starter-test: JUnit, Mockito 등 다양한 테스트 라이브러리 지원
- spring-boot-starter-mail: JavaMailSender를 활용한 이메일 전송 지원
- spring-boot-starter-actuator: 애플리케이션 모니터링 및 상태 점검 기능 제공
4. 사용법
프로젝트의 pom.xml 혹은 gradle 파일에 원하는 starter를 추가하면 자동으로 관련 라이브러리가 설정된다.
Maven
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<version>3.4.2</version>
</dependency>
gradle
implementation group: 'org.springframework.boot', name: 'spring-boot-starter-data-jpa', version: '3.4.2'
혹은 아래도 가능
implementation 'org.springframework.boot:spring-boot-starter-data-jpa:3.4.2'
코틀린이라면
implementation("org.springframework.boot:spring-boot-starter-data-jpa:3.4.2")
이런식으로 사용하면 된다.
커스텀 Starter
공통기능을 여러 프로젝트에서 재사용하고 싶다면 자체적으로 Starter를 만들 수도 있다.
1. 설정 추가
maven에서 설정 추가
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
</dependencies>
gradle에서 설정추가
dependencies {
implementation 'org.springframework.boot:spring-boot-autoconfigure'
implementation 'org.springframework.boot:spring-boot-starter'
}
2. 클래스 작성
@Configuration
@ConditionalOnClass(MyService.class)
@EnableConfigurationProperties(MyProperties.class)
public class MyStarterAutoConfiguration {
@Bean
public MyService myService() {
return new MyService();
}
}
3. 파일 설정
META-INF/spring.factories 파일을 생성하고 다음과 같이 자동 설정 클래스를 등록한다.
org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.example.mystarter.MyStarterAutoConfiguration
이제 mystarter 모듈을 다른 프로젝트에서 적용할 수 있다!
5. 정리
Spring Boot Starter는 애플리케이션 개발을 더 쉽고 빠르게 만들어주는 필수적인 개념이다.
공식 Starter를 활용하면 개발 속도를 높일 수 있고, 커스텀 Starter를 만들어 공통 기능을 손쉽게 공유할 수도 있다.
이를 활용해 더 효율적인 Spring Boot 애플리케이션을 개발할 수 있다.
'Spring' 카테고리의 다른 글
[Spring] Spring Boot에서 DB Replication (0) | 2025.02.10 |
---|---|
[Spring] Redis를 이용한 캐싱 기법 (0) | 2025.02.08 |
[Spring] Spring Security (0) | 2025.02.06 |
[Spring] N + 1 문제 (0) | 2025.02.06 |
[Spring] 관계 매핑 어노테이션 (2) | 2025.02.06 |