-
Spring Boot 핵심 기능 2 - 라이브러리 관리BackEnd/Spring Boot 2023. 4. 19. 07:00반응형
웹 프로젝트를 하나 설정하기 위해서는 스프링 WEB, 내장 톰캣, JSON 처리기, 로거 등 수많은 라이브러리들이 필요하며, 각각의 라이브러리 버전까지 선택해야 합니다. 여기서 문제는 라이브러리들 간 호환성입니다.
스프링 부트는 개발자가 라이브러리들을 편리하게 사용할 수 있는 다양한 기능들을 제공합니다.
- 외부 라이브러리 버전 관리
- 스프링 부트 스타터 제공
스프링 부트 라이브러리 버전 관리
스프링 부트는 수 많은 라이브러리의 버전을 직접 관리해줍니다. 버전 관리 기능을 사용하려면 io.spring.dependency-management 플러그인을 사용해야 합니다.
plugins { id 'org.springframework.boot' version '3.0.2' id 'io.spring.dependency-management' version '1.1.0' id 'java' }
dependency-management 버전 관리
io.spring.dependency-management 플러그인을 사용하면 spring-boot-dependencies에 있는 다음 bom 정보를 참고합니다.
해당 build.gradle 문서 안에 보면 bom이라는 항목이 존재하며, 각각의 라이브러리에 대한 버전이 명시되어 있는 것을 확인할 수 있습니다. 현재 프로젝트에서 지정한 스프링 부트 버전을 기준으로 나머지 라이브러리들의 버전을 관리합니다.
Note. 스프링 부트가 관리하는 외부 라이브러리 버전을 확인하는 방법
스프링 부트가 관리하지 않는 외부 라이브러리의 경우, 다음과 같이 라이브러리의 버전을 직접 적어주어야 합니다.
implementation 'org.yaml:snakeyaml:1.30'
스프링 부트 스타터
스프링 부트는 프로젝트를 시작하는데 필요한 관련 라이브러리를 모아둔 스프링 부트 스타터를 제공합니다. 스프링 부트 스타터는 사용하기 편리하게 의존성을 모아둔 세트입니다.
dependencies { /* //1. 라이브러리 직접 지정 //스프링 웹 MVC implementation 'org.springframework:spring-webmvc:6.0.4' //내장 톰캣 implementation 'org.apache.tomcat.embed:tomcat-embed-core:10.1.5' //JSON 처리 implementation 'com.fasterxml.jackson.core:jackson-databind:2.14.1' //스프링 부트 관련 implementation 'org.springframework.boot:spring-boot:3.0.2' implementation 'org.springframework.boot:spring-boot-autoconfigure:3.0.2' //LOG 관련 implementation 'ch.qos.logback:logback-classic:1.4.5' implementation 'org.apache.logging.log4j:log4j-to-slf4j:2.19.0' implementation 'org.slf4j:jul-to-slf4j:2.0.6' //YML 관련 implementation 'org.yaml:snakeyaml:1.33' */ /* //2. 스프링 부트 라이브러리 버전 관리 //스프링 웹, MVC implementation 'org.springframework:spring-webmvc' //내장 톰캣 implementation 'org.apache.tomcat.embed:tomcat-embed-core' //JSON 처리 implementation 'com.fasterxml.jackson.core:jackson-databind' //스프링 부트 관련 implementation 'org.springframework.boot:spring-boot' implementation 'org.springframework.boot:spring-boot-autoconfigure' //LOG 관련 implementation 'ch.qos.logback:logback-classic' implementation 'org.apache.logging.log4j:log4j-to-slf4j' implementation 'org.slf4j:jul-to-slf4j' //YML 관련 implementation 'org.yaml:snakeyaml' */ //3. 스프링 부트 스타터 implementation 'org.springframework.boot:spring-boot-starter-web' }
- spring-boot-starter : 핵심 스타터, 자동 구성, 로깅, YAML
- spring-boot-starter-jdbc : JDBC, HikariCP 커넥션풀
- spring-boot-starter-data-jpa : 스프링 데이터 JPA, 하이버네이트
- spring-boot-starter-data-mongodb : 스프링 데이터 몽고
- 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 : 스프링 배치를 위한 스타터
스프링 부트 스타터의 전체 목록은 다음 공식 메뉴얼을 참고합니다.
라이브러리 버전 변경
외부 라이브러리의 버전을 변경하고 싶을 때는 다음과 같은 형식으로 편리하게 변경할 수 있습니다.
ext['tomcat.version'] = '10.1.4'
스프링 부트가 관리하는 외부 라이브러리 버전 변경에 필요한 속성 값은 다음 공식 메뉴얼을 참고합니다.
[참고정보]
반응형'BackEnd > Spring Boot' 카테고리의 다른 글
Spring Boot 핵심 기능 4 - 외부설정(1) (0) 2023.05.03 Spring Boot 핵심 기능 3 - 자동 구성(Auto Configuration) (0) 2023.04.20 Spring Boot 핵심 기능 1 - 내장 톰캣 (0) 2023.03.25 REST API (0) 2022.05.25 HAL Browser (0) 2022.05.25