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