gradle 가지고 라이브러리 의존관계를 세팅하고 있다.
의존성 전이
과거에는 모든 라이브러리를 직접 다 찾아서 끌어와야 했는데, 이제는 필요한 라이브러리를 선택하면 해당 라이브러리를 사용하는데 필요한 의존관계를 다 긁어 온다.
이것을 의존성 전이라고 한다.
스프링 부트에서 확인하고 싶은 라이브러리가 있을 때
어떤식으로 관련된 라이브러리를 사용하고 있는지 확인하고 싶다면?
확인하는 방법 1 (cmd에서 확인)
-> d:\mineproject\jpashop>dir
-> d:\mineproject\jpashop>gradlew dependencies
확인하는 방법 2 (IntelliJ에서 확인)
spring-boot-starter
spring-boot-starter-web2.1.13.RELEASE 라이브러리가 있고
spring-boot-starter-tomcat
apache.tomcat.embed:tomcat-embed
spring-webmvc
위의 라이브러리들을 의존하고 있음을 확인할 수 있다.
tomcat과 webmvc들을 사용할 수 있는 것이 이러한 의존성 때문에 가능하다.
thymeleaf
마찬가지로 thymeleaf와 관련된 라이브러리들이 세팅되어 있고
3버전의 thymeleaf를 사용함을 확인할 수 있다.
제일 중요한 라이브러리 spring-boot-starter-data-jpa
관련된 라이브러리 중에서 중요한 것은 spring-boot-starter-jdbc에 HikariCP(커넥션 툴)이라고 한다.
spring-boot 2.대 버전부터는 기본 라이브러리(커넥션 툴)이다.
운영시에도 사용하는 커넥션 툴인데 유용하다.
그리고 data:spring-data-jpa 라이브러리가 설치 되어 있음을 볼 수 있다.
*강의에는 spring-boot-starter-data-jpa:2.1.7 버전, hibernate 5.3.10.이지만,
내가 설치된 라이브러리는 각각 2.1.13, 3.2.0 버전이다.
강의를 들을 당시에는 버전선택이 2.1.13이 2.1.7버전에 제일 가까운 버전이었다.
spring-boot-starter -> spring-boot-starter-logging
slf4j ->단순한 로그를 찍는 인터페이스 모음
slf4j에 logback이라는 구현체를 꽂아서 사용한다.
라이브러리 설정만 조금 바꾸어주면 실제 구현된 로그를 바꿀 수가 있다
slf4j를 쓰는 것이 요즘 대세라고 한다.
spring-core와 spring-context
spring-core와 spring-context 라이브러리는 한묶음으로 거의 같이 사용한다.
spring-boot-starter시리즈를 사용하면 core,context는 패키지로 라이브러리를 사용한다고 한다.
test 라이브러리
junit-> 기본 라이브러리
mockito->mock객체 만드는 라이브러리
assertj-> 테스트를 편하게 할 수 있도록 도와주는 라이브러리
spring-test ->기본라이브러리
H2 database -> h2버전과 접근하는 클라이언트 버전과 맞지 않으면 충돌이 일어남
종합해서 라이브러리 요약정리하자면 다음과 같다.
테스트 라이브러리
spring-boot-starter-test
junit: 테스트 프레임워크
mockito: 목 라이브러리
assertj: 테스트 코드를 좀 더 편하게 작성하게 도와주는 라이브러리
spring-test: 스프링 통합 테스트 지원
핵심 라이브러리
스프링 MVC
스프링 ORM
JPA, 하이버네이트
스프링 데이터 JPA
기타라이브러리
H2 데이터베이스 클라이언트
커넥션 풀: 부트 기본은 HikariCP
WEB(thymeleaf)
로깅 SLF4J & LogBack
테스트
참고: 스프링 데이터 JPA는 스프링과 JPA를 먼저 이해하고 사용해야 하는 응용기술이다.
'신입개발자로 취업하기까지 > JPA쇼핑몰기능구축' 카테고리의 다른 글
20200430 프로젝트 환경설정_JPA와 DB설정 및 동작확인_5-1 (0) | 2020.05.07 |
---|---|
20200429 프로젝트 환경설정_H2데이터베이스 엔진 설치_4 (0) | 2020.04.29 |
20200423 프로젝트 환경설정_view 환경설정_3 (0) | 2020.04.24 |
20200421 프로젝트 환경설정_프로젝트생성_1-2 (0) | 2020.04.22 |
20200421 프로젝트 환경설정_프로젝트생성_1-1 (0) | 2020.04.22 |