IntelliJ 프로젝트 화면 좌측 메뉴의 [External Libraries]나 우측의 [Gradle] 버튼을 눌러보면 정말 많은 라이브러리가 다운 받아져있는 것을 확인할 수 있다.
build.gradle을 살펴보면 내가 선택한 라이브러리는 다음 3가지밖에 없는데도 불구하고,
실제로 다운받아진 라이브러리는 정말 많다. 심지어 하나는 testImplementation이라는 이름으로
프로젝트를 생성할 때 자동으로 추가된 라이브러리다.
선택한 라이브러리에 비해 다운받아진 라이브러리가 많은 이유는 간단하다.
내가 선택한 해당 라이브러리들이 동작하려면 다른 라이브러리도 필요하기 때문이다.
이를 라이브러리의 의존 관계라 하며, Gradle, Maven과 같은 빌드 도구들은 내가 쓰려는 라이브러리를 지정하면
그 라이브러리를 쓰기 위해 필요한 다른 라이브러리들까지 자동으로 다운 받아준다.
이를 빌드 도구가 의존 관계를 관리해준다고 표현한다.
특히나 spring-boot-starter-web과 같은 라이브러리는 의존하는(함께 다운받아지는) 라이브러리 중에 tomcat이라는 서버 애플리케이션을 내장(embedded)하고 있어 tomcat을 별도로 깔아서 설정해야하는 개발 상 수고로움을 크게 덜어준다.
그 외에도 logging 도구, Junit 등의 테스트 도구 등도 포함하고 있어 다양한 기능을 활용할 수 있다.
결론적으로 이러한 의존 관계 관리 기능 덕에 개발자들은 개발에 필요한 라이브러리를 모두 외울 필요가 없어지고, 다양한 라이브러리를 쉽게 받아서 활용할 수 있으므로 생산성이 크게 향상된다.
하지만 알아서 관리해준다고 해서 이러한 라이브러리들을 몰라도 된다는 뜻은 아니다.
적어도 한두번 쯤은 눈여겨 보아야 한다.
어차피 공부를 계속 하다보면 일부러 외우려 하지 않아도 각 라이브러리가 어떤 기능을 하는지 알게 될 것이고, 이런 것들을 눈여겨 보는 습관이 기능을 이해하는 시간을 단축해줄 것이기 때문이다.
정리하자면
[External Libraries]나 [Gradle] 창을 통해 현재 다운받은 라이브러리들을 확인할 수 있다.
어떤 라이브러리들은(사실 대부분의 라이브러리는) 동작하기 위해 다른 라이브러리를 필요로 하는데, 이를 라이브러리 간 의존(dependency) 관계라 한다.
어떤 라이브러리들이 쓰이는지 한번쯤 봐 두는 것이 좋다. 어차피 나중에 뭔지 다 알아야 한다.
몇 가지 라이브러리를 살펴보면
spring-boot-starter-web
spring-boot-starter-tomcat : 톰캣 (웹서버)
spring-webmvc : 스프링 웹 MVC
spring-boot-starter-thymeleaf: 타임리프 템플릿 엔진(View)
spring-boot-starter(공통): 스프링 부트 + 스프링 코어 + 로깅
spring-boot-starter-test : 테스트 라이브러리.
junit : 테스트 프레임워크
assertj : 테스트 코드를 좀 더 편하게 작성하게 도와주는 라이브러리
mockito: 목 라이브러리
목(mock)은 정보처리기사 출제범위에서 시제품이라는 의미의 목업(mockup)에 대해 본 적이 있는데, 같은 건지는 모르겠다.
'[inflearn] 스프링 입문' 카테고리의 다른 글
스프링 입문) 6. 회원 관리 예제 - 백엔드 개발(1) (0) | 2023.04.02 |
---|---|
스프링 입문) 5. 스프링 웹 개발 기초 개념 (0) | 2023.03.27 |
스프링 입문) 4. 빌드 및 실행 (0) | 2023.03.23 |
스프링 입문) 3. View 환경설정 (0) | 2023.03.21 |
스프링 입문) 1. 프로젝트 생성 (0) | 2023.03.12 |