Gralde은 의존 관계(의존성)를 관리해준다.
예를들어 Spring-Web 라이브러리를 가지고 오면, 그와 관련된 톰캣, 웹 등을 가지고 온다.
그렇다면 의존관계란 무엇일까?
의존 관계
특정 기능이나 서비스가 다른 기능이나 서비스를 필요로 할 때 발생하는 관계를 의미
연관을 유지하는 관계
사물의 변화가 다른 사물에도 영향을 미친다.
라이브러리
- 스프링 부트 라이브러리
- spring-boot-starter-web
- spring-boot-starter-tomcat: 톰캣 (웹서버)
- spring-webmvc: 스프링 웹 MVC
- spring-boot-starter(공통)
- spring-boot spring-core
- 테스트 라이브러리
- spring-boot-starter-test
- junit: 테스트 기반 프레임워크
- mockito : 실제 객체를 다양한 조건으로 인해 제대로 구현하기 어려울 경우 가짜 객체(=목 객체)를 만들어 사용
- assertj: 테스트 코드를 좀 더 편하게 작성하게 도와주는 라이브러리
- spring-test: 스프링 통합 테스트 지원
라이브러리와 의존성의 차이
의존성은 프로젝트가 빌드되고 실행되기 위해 필요로 하는 외부 라이브러리나 모듈을 의미
라이브러리는 특정 기능을 제공하는 코드 집합이며, class, function의 모음으로 구성
-> Gradle은 의존성을 관리해주는 도구라고 생각
- 인텔리제이에서는 아래와 같이 의존성을 확인할 수 있다.
¿ 찾아보면서 dependency configuration에 대해서 궁금해졌다.
dependency configuration : gradle 기반의 프로젝트에서 선언된 모든 의존성들은 다양한 범위(Scope)를 지정하여 특정 상황에서만 사용되도록 설정할 수 있다. 이러한 scope를 configuration(환경 설정)를 통해 명시한다.
testRuntimeOnly
위에서 말한 특정한 scope가 -> implementation, testImplementation 등을 말한다.
implementation | 컴파일 및 런타임 (프로젝트의 기본 의존성을 선언할 때 사용) |
testCompileOnly | 테스트 컴파일 시 포함, 런타임 시에는 포함 X |
testRuntimeOnly | 테스트 런타임 시 포함, 컴파일 시에는 포함 X |
testImplementation | 테스트 컴파일 및 런타임 시 모두 포함 |
'스프링 | 스프링 부트' 카테고리의 다른 글
스프링 부트(입문) - 정적 컨텐츠 (0) | 2024.08.02 |
---|---|
스프링 부트(입문) - 터미널에서 빌드 후 실행 (0) | 2024.08.02 |
스프링 부트(입문) - viewResolver (0) | 2024.08.02 |
인텔리제이(Mac)- jdk, Spring Boot 다운그레이드 (0) | 2024.08.01 |
스프링 부트 - 입문, 기본편 (시작) (0) | 2024.08.01 |