본문 바로가기

Spring/etc

[Spring Boot] Spring Boot의 dependency

728x90
반응형

Spring Boot는 Spring에 비해 dependency 를 더 편하게 관리할 수 있도록 기능을 제공하고 있습니다.

이번 글에서는 이 dependency와 관련된 개념들을 알아보겠습니다.

 

 

프로젝트 빌드 도구 : Maven, Gradle

프로그램이 동작하기 위해서는 소스 코드를 실행 가능한 상태로 만들 수 있도록 하는 변환 과정 및 결과물이 필요한데, 이를 빌드라고 합니다.

이 때 결과물은 우리가 흔히 아는 .war이나 .jar의 형태 등이 있습니다.

빌드를 위해서는 라이브러리 다운, 의존성 확인, 테스트, 컴파일 등의 작업이 필요한데 이러한 과정을 개발자가 수동으로 하기에는 번거롭기 때문에 빌드 도구를 이용하여 자동적으로 이러한 작업들을 해줍니다.

Spring Boot가 공식적으로 지원하는 프로젝트 빌드 도구는 Maven과 Gradle입니다.

이전에는 Maven을 주로 사용했으나 최근들어 가독성과 성능 등의 이유로 Gradle의 선호도가 늘고 있습니다.

 

 

Wrapper

wrapper는 코드가 빌드되는 환경에 Gradle이나 Maven이 없더라도 프로젝트에 이를 포함시켜 배포할 수 있도록 하는 기능입니다.

실행 위치의 gradle의 경우 .gradle/wrapper/gradle-wrapper.jar을 참고하여 해당 버전과 정보로 빌드를 하게 됩니다.

특히 하나의 프로젝트를 여러 사람들이 작업하고 각자의 로컬에서 빌드하는 경우에는 그 사람의 환경에 어떤 버전의 빌드 도구가 깔려있는지에 따라서 동작이 다르게 되는 경우가 있는데
wrapper를 이용하면 모든 사람들이 동일한 빌드 도구를 설정하여 사용할 수 있어 용이합니다.

인텔리제이에서는 설정에서 wrapper에 있는 gradle을 사용할건지, 아니면 로컬에 설치된 gradle이나 bundle로 설치된 것을 사용할 것인지 선택할 수 있습니다.

 

Spring Boot starter 팩

Spring Boot는 자신들이 권장하는 라이브러리로 자동 구성되도록 의존성을 관리해주는 기능을 가지고 있습니다.

이 중에 spring-boot-starter-* 의 이름을 가지고 있는 의존성이 있는데,

이는 어플리케이션이 어떤 기술을 이용하기 위해 라이브러리를 하나하나 기술하지 않아도

이 starter가 알아서 필요한 라이브러리를 담아줌으로써 편리하게 의존성을 관리할 수 있습니다.

아래처럼 maven repository에서 starter 에서 어떤 compile dependency 를 사용하고 있는지도 바로 확인할 수도 있습니다.
https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web/3.0.0

728x90
반응형