IntelliJ로 Spring 프로젝트를 생성한 뒤 우측 상단에 있는 gradle 버튼을 누르면 위와 같이 파일들이 뜬다.
우선 라이브러리들을 살펴보기 전에 gradle이 무엇인지부터 알아보자.
1. gradle
gradle은 스프링 Project를 선택할 때 맨 위에 나오게 된다.
gradle은 groovy를 기반으로한 빌드 도구이며 전부터 바뀐 추세에 따르면 우측에 있는 Maven보다 gradle을 많이 사용한다고 한다. (gradle이 Maven을 포함한 이전 세대들의 빌드 도구들의 단점을 보완해서 만들어졌다.)
그래서 IntelliJ에서 build.gradle이라는 파일에 들어가보면
위와 같이 plunins, dependencies 등 뭔가 자세히는 모르겠지만 Spring을 시작하는 데에 있어 필요한 구성들을
모아놓은 곳이라는 느낌을 받을 수 있다.
다시 본론으로 돌아와서 Gradle을 눌렀을 때 나오는 다양한 파일들에 대해 알아보자.
우선 Dependencies는 의존성이란 이다. 이 단어를 왜 설명했는지는 아래의 글을 보면 이해가 될 것이다.
build.gradle의 dependencies 부분을 보면 우리는
이렇게 4개의 라이브러리들만 가져왔다. 하지만 왜 우측의 Gradle 버튼을 누르면 저렇게 방대한 양들의 라이브러리가 생기는 걸까?
그 이유가 바로 library들의 의존성 때문이다.
우리가 건축을 해서 집을 짓는다는 예시를 들어보자.
건물을 지을 땅이 필요하다. ㅡ> 건축 업체가 필요하다. ㅡ> 일을 할 사람들이 필요하다. ㅡ> 건축 자재가 필요하다. -> 돈이 필요하다.
간략하게만 써놓은 위의 예시만 해도 필요한 게 5개나 되고 이 5개가 서로 연관되면서 물려있다.
건물을 짓는 것처럼 복잡한 웹사이트, 애플리케이션을 만드는 작업은 얼마나 더 많은 것들이 연관되어있을까?
이것을 해결하고 설명해주는 것이 library들이 dependencies이다.
하나의 library를 쓰려면 다른 library들이 필요하고 그 library에는 하위 library들이 있고 그런 방대한 library들이
서로 얽히고 물리면서 정말 방대한 library들이 설치가 되어 있는 것이다.
클릭해놓은 spring-boot-starter:3.3.3의 > 모양 버튼을 누르면 위와 같이 spring-boot-### 라이브러리들이 나오는데
우리가 spring-boot-starter library만 선택을 해도 사용자들이 사용하기 쉽도록
spring-boot-autuconfigure
spring-boot-starter-logging
spring-core
등의 라이브러리들이 자연스럽게 import 되는 것이다.
예전에는 이러한 library들을 일일이 써야 하고 다른 사람이 잘 만들어놓은 것을 복사 붙여넣기 해야 했지만
Spring, Spring boot의 발달로 사용자들이 더 편리하고 효율적으로 사용하도록 이러한 부분들이 개선되었다.
'Spring > Spring' 카테고리의 다른 글
[Spring] 빈 조회하기 - 상속 관계 (1) | 2024.08.30 |
---|---|
[Spring] 컨테이너에 등록된 빈 조회하기 (0) | 2024.08.29 |
[Spring] 스프링 컨테이너 (0) | 2024.08.29 |
[Spring] API(JSON 방식)와 @ResponseBody (0) | 2024.08.24 |
[Spring] 정적 컨텐츠, MVC, 템플릿 엔진 (0) | 2024.08.24 |