[Spring] Spring 라이브러리(dependencies)
# gradle의 의존관계 관리
: gradle, maven 같은 build tool들은 의존관계를 관리해줌
build.gradle에 Spring Web, Thymeleaf만 추가했지만
gradle이 Spring Web, Thymeleaf와 의존관계를 가지는 라이브러리들을 모두 가져옴.
실제 External Libraries에 보면 직접 추가하지 않은 라이브러리들이 많음.
Gradle Dependencies 확인해보면 thymeleaf, starter-web 아래에 의존관계를 가지는 다른 라이브러리들 확인 가능
이미 선언한 라이브러리는 중복 표시하지 않고 (*)을 통해 나타냄(더블 클릭하면 선언된 곳으로 이동 가능)
spring이 tomcat을 내장한다는 것도 확인 가능(Java main 메소드 실행만 하는데 웹서버가 뜬 이유)
# 스프링 부트 라이브러리
- spring-boot-starter-web
- spring-boot-starter-tomcat : 톰캣(웹서버)
- spring-webmvc : 스프링 웹 MVC - spring-boot-starter-thymeleaf : 타임리프 템플릿 엔진(View)
- spring-boot-starter(공통) : 스프링 부트 + 스프링 코어 + 로깅
- spring-boot
---- spring-core
- spring-boot-starter-logging
---- logback, slf4j
# 로깅
- Spring Web dependency 추가 시 logging도 같이 따라 옴
- 실무에서는 System.out.println()이 아니라 log로 출력해야 함
-> 그래야 심각한 오류들은 따로 모아서 보거나, 파일로 관리할 수 있음 - slf4j는 인터페이스라 보면 됨
- 요즘에는 logback을 많이 사용(실제 로그를 어떤 구현체로 출력할 건지)
-> 성능도 빠르고 지원하는 기능도 다양
# 테스트 라이브러리
- spring-boot-starter-test
- junit : 테스트 프레임워크 (요즘에는 junit5 버전 사용)
- mockito : 목 라이브러리
- assertj : 테스트 코드를 좀 더 편하게 작성할 수 있도록 도와주는 라이브러리
- spring-test : 스프링 통합 테스트 지원 - assertj, mockito : 테스트를 편리하게 하기 위해 도와주는 것들이고, 핵심은 junit
참고 - 인프런 무료 강의 : 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 [김영한님]
https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9E%85%EB%AC%B8-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8/dashboard
[무료] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 | 강의
스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 있습니다., 스프링 학습 첫 길잡이! 개발 공부의 길을 잃지 않도록 도와드립니다. 📣 확인해주세
www.inflearn.com