본문 바로가기

Spring/Spring Boot 기초

Spring Boot 기초 - 라이브러리 살펴보기

project 셋팅을 하고 난 뒤에 build.gradle을 살펴보면 import한 라이브러리는 spring-boot-starter-web과 spring-boot-starter-thymeleaf 이 두가지 뿐이다. 하지만 자세히 import된 라이브러리들을 살펴보면 굉장히 많은 것을 볼 수 있다.

기본적으로 이렇게 구성되는 것을 기록해보았다.


 

External Dependencies(libraies)

gradle, maven은 빌드관리도구로 라이브러리의 의존관계를 다 관리해준다.
사진에서와 같이 gradle에는 spring-boot-starter-web과 thymeleaf 라이브러리만 import를 했는데,
external dependencies에 많은 라이브러리가 있는 것은 gradle에 import한 라이브러리가 사용되기 위해 내부적으로 필요한 라이브러리 전부를 모두 가져오기 때문이다. (의존관계가 있는 라이브러리를 함께 다운로드 한다.)
 
org.springframework,boot:spring-boot-starter-web:2.3.1.RELEASE(*)
하위(내부)에 보면 tomcat과 관련된 라이브러리가 있다.

 

예전에는 톰캣과 같은 was를 설치하고, 자바소스를 실행시키는 방식으로 어플리케이션을 동작시켰었다.
지금은 라이브러리에 spring-boot-starter-tomcat처럼 내장되어있기 때문에 Spring Boot의 main메서드만 실행시켜도 웹서버가 동작해서 어플리케이션을 실행시킬 수 있다. 즉, 라이브러리를 import해서 사용한다는 의미이다!
 
 
spring-boot-starter-web
  • spring-boot-starter-tomcat: 톰캣 (웹서버)
  • spring-webmvc: 스프링 웹 MVC
spring-boot-starter-thymeleaf: 타임리프 템플릿 엔진(View)
spring-boot-starter(공통): 스프링 부트 + 스프링 코어 + 로깅
  •  spring-boot
    •  spring-core

 
org.springframework,boot:spring-boot-starter-web:2.3.1.RELEASE(*) 내부에 보면 spring-boot-start-logging이라는 라이브러리가 있다.
또, 이 내부에는 org.slf4j:jul-to-slf4j:1.7.30이라는 라이브러리와 ch.gos.logback:logback-classic:1.2.3이라는 라이브러리가 있다.
logging하는 라이브러리로는 이 두가지 조합을 많이 사용하고 있다.
실무에서 개발할 때 로그남기는 것은 system.out.println보다는 이 로그 라이브러리를 활용하여 남기는 것이 중요하다.
그 이유는 심각한 에러를 모아서 본다던가, 로그의 종류별로 관리를 할 수 있기 때문이다.

 


 
spring 테스트로는 junit을 사용한다.
오랫동안 4버전이었는데, 최근 5버전으로 업데이트 되었다.
이 내부에는 mockito, assertj라는 라이브러리들이 있는데 junit테스트를 할 때 도와주는 역할이다.
  • junit: 테스트 프레임워크
  • mockito: 목 라이브러리
  • assertj: 테스트 코드를 좀 더 편하게 작성하게 도와주는 라이브러리
  • spring-test: 스프링 통합 테스트 지원
 

 

위의 라이브러리들은 주요 쓰여지는 라이브러리이고, Spring Boot 입문을 하면서 어떻게 구성되어있는지 하나씩 알아보기 좋은 키워드들이다. 사용하면서 자세히 찾아보고 기록해봐야 겠다!