라이브러리 살펴보기
gradle이나 앞전에 말한 maven같은 프로젝트들은 의존 관계를 관리 해준다.
plugins {
id 'org.springframework.boot' version '2.7.3'
id 'io.spring.dependency-management' version '1.0.13.RELEASE'
id 'java'
}
group = 'hello'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-web'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
tasks.named('test') {
useJUnitPlatform()
}
여기 보이는 dependencies에서 spring-boot-starter-web을 추가한 후에 돌려주면
starter-web라이브러리를 dependencies에 추가해서 가져오면 starter-web에 필요한 라이브러리들을 다 가져온다.
같이 추가 되어진 애들을 말하자면 의존 관계가 필요한 것들이다.
우리는 web만 필요하지만 web이 필요한 것을 우리는 의존을 하고 있는 것이다.
그러면 gradle이 이를 다 가져와준다.
이 부분을 눌르면 무언가가 바뀜 gradle뜸 이후에 gradle을 누르면 아래의 이미지처럼 나온다.
라이브러리간의 의존 관계이다.
각각을 펼치면 그에 해당하는 라이브러리가 필요한 것들이 밑에 있음.
spring-boot-starter-tomcat이 spring-boot-starter-web 안에 들어 있음.
이전에 프로그래밍 고대 개발자들은 웹 서버라는 것을 서버에 직접 설치하였다.
톰캣 같은 것들은 그 후에 자바 코드들을 집어넣는 형식으로 했다.
요즘에는 소스 라이브러리에서 웹 서버를 들고 있다. 이런 것을 임베디드(내장)하고 있다고 한다.
자바 메인 메서드만 실행해도 웹서버가 뜬다. 요즘에는 개발을 이런 방식으로 한다.
걍 라이브러리만 깔고 웹 서버가 내장되어 있어서 웹이 실행되는 것이다.
예전처럼 톰캣 서버를 까는 짓을 하지 않음.
Spring-boot 라이브러리를 쓰면 spring-core까지 다 가져온다.
현업에서는 System.out.println으로 출력을 하면 안된다. 현업에서는 log라는 것으로 이걸 남겨주어야 한다.
log로 넘겨야 심각한 에러들을 모아 볼 수 있거나 할 수 있다. .log파일들이 관리가 된다.
그런데 취업 준비생이나 경험을 안한 나 같은 사람들은 로그를 왜쓰지라는 생각이 들 수 있음.
하지만 실무에서는 로깅을 많이 써야함
로깅이 있는데 slf4j , logback라는게 있다. 요즘에는 slf4j는 한마디로 말해서 인터페이스이다.
log를 어떤 구현체로 출력할까이다.
요즘 트랜드는 logback이다. logback은 실제 로딩 속도도 빠르고 여러가지 지원하는 기능도 좋아 어떤 구현체로 출력할지를 logback으로 자주 결정한다. -> 그냥 spring-boot-starter를 떙기면 logback과 slf4j 두가지가 땡겨짐
두가지가 궁금하면 이 키워드로 검색하자
테스트할 때 대부분 java 진영에서는 JUnit이라는 것을 쓴다. 그래서 스프링에서도 기본적으로 추가해서 제공해준다.
spring-test : 스프링을 통합 테스트
스프링 부트 라이브러리
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-boot-starter-testjunit : 테스트 프레임워크 mockito : 목라이브러리
assertj : 테스트 코드를 좀 더 편하게 작성하게 도와주는 라이브러리
spring-test : 스프링 통합 테스트 지원