스프링 부트(핵심 원리와 활용)

Ch03. 스프링 부트 스타터와 라이브러리 관리 - 스프링 부트 스타터

webmaster 2023. 3. 7. 18:29
728x90
  • 앞서 보았듯이 웹 프로젝트를 하나 실행하려면 생각보다 수 많은 라이브러리가 필요하다.
  • 스프링 웹 MVC, 내장 톰캣, JSON 처리, 스프링 부트 관련, LOG, YML 등등 다양한 라이브러리가 사용된다.
  • 개발자 입장에서는 그냥 웹 프로젝트를 하나 시작하고 싶은 것이고, 일반적으로 많이 사용하는 대중적인 라이브러리들을 포함해서 간단하게 시작하고 싶을 것이다.
  • 스프링 부트는 이런 문제를 해결하기 위해 프로젝트를 시작하는데 필요한 관련 라이브러리를 모아둔 스프링 부트 스타터를 제공한다.
  • 스프링 부트 스타터 덕분에 누구나 쉽고 편리하게 프로젝트를 시작할 수 있다.

build.gradle - dependencies 수정

dependencies {
    //3. 스프링 부트 스타터
    implementation 'org.springframework.boot:spring-boot-starter-web'
}
  • spring-boot-starter-web 이 라이브러리 하나로 지금까지 우리가 직접 넣어주었던 모든 라이브러리가 포함된다.
  • 이것은 사용하기 편리하게 의존성을 모아둔 세트이다.
    • 이것을 하나 포함하면 관련 의존성 세트가 한번에 들어온다.
    • 스타터도 스타터를 가질 수 있다.
  • 스프링과 웹을 사용하고 싶으면 spring-boot-starter-web
    • 스프링 웹 MVC, 내장 톰캣, JSON 처리, 스프링 부트 관련, LOG, YML 등등
  • 스프링과 JPA를 사용하고 싶으면 spring-boot-starter-data-jpa
    • 스프링 데이터 JPA, 하이버네이트 등등

스프링 부트 스타터 - 이름 패턴

  • spring-boot-starter-*
  • 쉽게 찾게 도와줌
  • 공식: spring-boot-starter-*
  • 비공식: thirdpartyproject-spring-boot-starter
    • ex) mybatis-spring-boot-starter
dependency
기능
spring-boot-starter  핵심 스타터, 자동 구성, 로깅, YAML
spring-boot-starter-jdbc JDBC, HikariCP 커넥션풀
spring-boot-starter-data-jpa
스프링 데이터 JPA, 하이버네이트
spring-boot-starter-data-mongod
스프링 데이터 몽고
spring-boot-starter-data-redis
스프링 데이터 Redis, Lettuce 클라이언트
spring-boot-starter-thymeleaf
타임리프 뷰와 웹 MVC
spring-boot-starter-web
웹 구축을 위한 스타터, RESTful, 스프링 MVC, 내장 톰캣
spring-boot-starter-validation
자바 빈 검증기(하이버네이트 Validator)
spring-boot-starter-batch
스프링 배치를 위한 스타터

스프링 부트 스타터의 전체 목록은 다음 공식 매뉴얼을 참고하자

https://docs.spring.io/spring-boot/docs/current/reference/html/using.html#using.build-%20systems.starters

 

Developing with Spring Boot

This section goes into more detail about how you should use Spring Boot. It covers topics such as build systems, auto-configuration, and how to run your applications. We also cover some Spring Boot best practices. Although there is nothing particularly spe

docs.spring.io

라이브러리 버전 변경

외부 라이브러리의 버전을 변경하고 싶을 때 다음과 같은 형식으로 편리하게 변경할 수 있다.

ext['tomcat.version'] = '10.1.4'

ex)

plugins {
    id 'org.springframework.boot' version '3.0.2'
    id 'io.spring.dependency-management' version '1.1.0'
    id 'java'
}

group = 'hello'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '17'

//스프링 부트 외부 라이브러리 버전 변경
ext['tomcat.version']='10.1.4'

configurations {
    compileOnly {
        extendsFrom annotationProcessor
    }
}

repositories {
    mavenCentral()
}



dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
}

tasks.named('test') {
    useJUnitPlatform()
}

스프링 부트가 관리하는 외부 라이브러리 버전 변경에 필요한 속성 값

https://docs.spring.io/spring-boot/docs/current/reference/html/dependency-versions.html#appendix.dependency-versions.properties 

  • 스프링 부트가 관리하는 외부 라이브러리의 버전을 변경하는 일은 거의 없다. 하지만 아주 가끔 문제가 발생하기도 하므로 알아두자
728x90