ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 4. 스프링 부트 스타터와 라이브러리 관리
    Spring-Boot/스프링부트 - 핵심 원리와 활용 2023. 5. 15. 15:46

    1. 라이브러리 직접 관리

    * 라이브러리 관리의 어려움 *

    - 어떤 라이브러리를 사용할지 버전은 어떻게할지, 호환 문제를 고민해야 한다.

     

    스프링 부트는 라이브러리들을 편리하게 사용할 수 있게 다양한 기능 제공

    - 외부 라이브러리 버전 관리

    - 스프링 부트 스타터 제공

     

    2. 스프링 부트 라이브러리 버전 관리

    - 개발자는 원하는 라이브러리만 고르고 라이브러리의 버전은 생략해도 된다.

     

    dependency-management 버전 관리

    - `io.spring.dependency-management` 플러그인을 사용하면 `spring-boot-dependencies` 에 있는 bom 정보를 참고한다.

    - 참고로 `spring-boot-dependencies`는 스프링 부트 gradle 플러그인에서 사용하기 때문에 개발자의 눈에 의존관계로 보이지 않는다..

     

    *참고 - 스프링 부트가 관리하지 않는 라이브러리*

    - 스프링 부트가 관리하지 않는 외부 라이브러리도 있다.

    - 특히 아직 잘 알려지지 않거나 대중적이지 않은 경우가 그러한데, 이때는 라이브러리의 버전을 직접 적어주어야 한다.

     

    *정리*

    - 스프링 부트가 제공하는 버전 관리는 스프링 자신을 포함해서 수 많은 외부 라이브러리의 버전을 최적화해서 관리해준다.

        ㆍ이제 개발자는 스프링 부트 자체의 버전만 지정하면 된다.

    - 그리고 스프링 부트가 해당 스프링 부트 버전에 맞는 각 라이브러리의 호환성을 테스트 했기 때문에 안전하게 사용할 수 있다. ( 물론 항상 100% 완벽할 수 는 없다. )

     

    3. 스프링 부트 스타터

    - `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`

     

    * 스프링 부트 스타터 - 자주 사용하는 것 위주 *

    - `spring-boot-starter` : 핵심 스타터, 자동 구성, 로깅, YAML

    - `spring-boot-starter-jdbc` : JDBC, HikariCP 커넥션풀

    - `spring-boot-starter-data-jpa` : 스프링 데이터 JPA, 하이버 네이트

    - `spring-boot-starter-data-mongodb` : 스프링 데이터 몽고

    - `spring-boot-starter-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'`

    댓글

Designed by Tistory.