[Spring] Spring Boot Starter 이해하기

 

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