Skip to Content
Suffering builds character

3.Starter-Module

1. 의존성 관리 간소화

각 의존성들은 서로 간에 호환되는 버전이 있기 때문에 복잡하게 얽혀있음

따라서 의존성들이 문제 없이 적용되었다고 해도, 어디까지나 자신의 환경에서만 문제없는 상태이기 때문에

다른 환경에서 실행될 경우 서버가 정상적으로 동작하지 않을 수 있음

2. Spring Boot Starter 모듈

스프링 부트에서는 BOM(Bills of Materials)라는 특수한 형태의 POM을 통해 어디서든 동일한 버전과 방식으로 동작할 수 있다는 개념을 적용하였고, 이는 스프링 부트 스타터(Starter)라는 이름으로 사용되고 있음

2-1. 스프링 부트를 사용하지 않을 경우 스프링 의존성 설정 방식

pom.xml
<!-- https://mvnrepository.com/artifact/org.springframework/spring-context --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.3.20</version> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework/spring-web --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>5.3.20</version> </dependency>

2-2. 스프링 부트를 사용할 때 의존성 설정 방식

spring-boot-starter-{dependency}와 같이 보다 추상화된 개별 스타터 의존성을 설치할 경우, 해당 의존성에 포함된 하위 의존성들 간에 호환되어야 하는 라이브러리 버전이 자동으로 동기화됨

→ 각 의존성들 간의 관계가 문제 없이 테스트가 통과함

pom.xml
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>

그러면서도 특정 버전만 변경해야할 경우, 오버라이딩을 통해 변경도 가능

이처럼 웹 애플리케이션 개발 시 스프링 부트를 활용할 경우,

spring-context, spring-web과 같이 개별적인 의존성을 각 버전이 호환되는지 확인 후에 개별적으로 추가하는 것이 아닌,

spring-boot-starter-web 의존성 하나만 설치함으로서 웹 애플리케이션 개발에 필요한 관련 의존성들을 각 버전에 맞게 알아서 클래스 패스에 추가해줌

Last updated on