SPRING 입문 [ 코드로 배우는 스프링 부트 ]

[스프링 입문] 섹션 1.2 프로젝트 환경설정 (라이브러리 살펴보기)

wlalsu_u 2022. 12. 29. 14:51

 

1.2.1 라이브러리 살펴보기

 

 

build.gradle 파일의 dependencies를 보면,

프로젝트 생성시에 추가한

thymeleaf , web , test(기본으로 생성) 라이브러리가 사용되고 있음을 알 수 있다.

 

 

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'
}

 

 

하지만 External Libraries 를 살펴보면,

우리가 프로젝트를 생성할 때 추가하지 않은,

굉장히 많은 라이브러리들이 실제로 사용되고 있음을 볼 수 있다.

 

 

 

 

 

 

이는 Gradle이나 Maven과 같은 빌드 툴들이 의존관계를 자동으로 관리해주기 때문이다.

따라서 thymeleaf, web, test와 의존관계에 있는 수많은 라이브러리들이 자동으로 불러와진다.

 

 

이러한 의존관계는 오른쪽 상단의 Gradle >  Dependencies 를 통해 자세하게 확인할 수 있다.

(* 표시가 되어 있는 라이브러리는 상단과 중복된 라이브러리를 표현하지 않은 것이다.)

 

 

 

 

 

 

 


 

1.2.2 spring-boot-starter-web (tomcat) 라이브러리 살펴보기

 

spring-boot-starter-web 라이브러리는 톰캣 / 스프링 웹 MVC 를 포함한다.

그 중 웹 서버인 tomcat에 대해 자세히 살펴보자.

 

과거에는 tomcat을 미리 설치하고, 이 웹 서버에서 자바를 실행하였다.

즉, 웹 서버와 라이브러리는 분리된 구조였다. 

 

하지만 최근에는 라이브러리가 웹 서버를 내장하고 있다.

이는 main 메소드를 실행시키면, http 8080 포트가 뜨는 것을 통해 알 수 있다.

 

 

 

 


 

 

1.2.3 spring-boot-starter 라이브러리 살펴보기

 

spring-boot라이브러리는 thymeleaf 라이브러리를 통해 자동으로 불러와진다.

spring-boot와 관련된 autoconfiguration / logging / spring-core 라이브러리들이 해당된다.

 

- spring-boot : spring-core

- spring-boot-starter-logging : logback , slf4j

 

 

 

 

 

logging에 대해 조금 더 자세히 살펴보면, logging은 logback 과 slf4j를 포함한다.

최근에는 거의 logback과 slf4j로 로깅을 운영한다. 

 

- logback : 실제 로그를 어떤 구현체로 출력할 것인지

- slf4j : 인터페이스

 

 

 

 

 


 

1.2.3 spring-boot-starter-test 라이브러리 살펴보기

 

test 라이브러리는 junit / mockito / assertj / spring-test 라이브러리를 포함한다.

 

 

- junit : 테스트 프레임워크로, 최근에는 5버전을 주로 사용한다.

- mockito / assertj :  test를 편리하게 도와주는 라이브러리이다.

- spring-test : spring을 통합해서 test할 수 있도록 지원한다.

 

 

 

 

 

 

 

김영한 '스프링 입문 - 코드로 배우는 스프링 부트, 웹 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