1. Spring 프로젝트 만들기
- 이전에는 하나부터 열까지 Spring 환경을 직접 설정했다.
- 하지만, 환경설정이 자동화되어 있는 Spring Boot를 사용하면서 프로젝트 또한 자동화를 거쳐 생성한다.
- 그 방법이 아래의 사이트를 사용하여 Spring 프로젝트를 만드는 것이다.
a) Maven & Gradle
- 프로젝트 생성을 시작하면, 맨 처음에 Maven과 Gradle을 선택하게 된다. 이들은 무엇일까?
- Maven과 Gradle 모두 자바 프로젝트에서 사용되는 빌드 자동화 및 관리 시스템이다.
a-1) Maven의 특징
- Maven은 XML을 기반으로 한 빌드 자동화 시스템이다.
- Maven은 사용하는 라이브러리와 해당 라이브러리와 연관된 모든 라이브러리를 자동으로 버전 관리를 해준다는 특징이 있다.
- 그러므로 이전처럼 수동으로 각 라이브러리를 업데이트 해야한다는 수고를 덜어준다.
a-2) Gradle의 특징
- Gradle 또한 프로젝트에 사용된 라이브러리와 연관된 라이브러리를 자동으로 관리해준다.
- 그러나, Gradle은 Groovy라는 언어를 사용한다는 데에 특징이 있다.
- Groovy는 JVM에서 돌아가는 스크립트 언어인데, Java와는 다르게 소스코드를 컴파일 하지 않아도 된다.
- 컴파일 과정이 없으므로 실행 속도가 빠른 것은 덤이며, Groovy는 Java의 간소화 버전이라고 불릴 만큼 Java와 유사하다.
- 그러므로 Java와 거의 비슷한 코드를 사용하여 빌드 관리를 설정할 수 있다는 장점이 있다.
a-3) Maven vs Gradle
→ 빌드 스크립트와 사용 언어의 차이
- Maven의 경우 XML을 기반으로, 빌드시 생성되는 스크립트가 길고 가독성이 떨어진다.
- 반면, Gradel의 경우 Groovy를 사용하기에 더욱 간략하면서 Java와 비슷한 코드의 빌드 스크립트를 생성한다.
- 그러므로 Gradle의 빌드 스크립트가 더 짧고 가독성이 좋으며, 빌드 관리를 위해 다른 언어를 사용해야 한다는 수고를 덜어준다.
- 즉, 프로젝트의 규모가 커질수록 빌드 스크립트의 길이도 늘어나기 때문에 이런 측면에서 Gradle이 주는 장점이 더 크게 작용한다
→ 설정 방식의 차이
- Maven의 경우 특정 설정을 다른 모듈에서 사용하려면 상속을 받아온다.
- Gradle의 경우 상속을 받는 것이 아닌, 설정을 주입하는 방식으로 작동한다.
- 즉, 규모가 큰 멀티 프로젝트에는 Gradle이 적합하며 빌드 속도 또한 Maven보다 더 빠르다는 이점을 갖는다.
b) 사용 트랜드
- 현재 대부분의 Legacy 시스템은 Maven을 기반으로 작성된 프로젝트이다.
- 하지만, 신규/유지보수 할 것 없이 Gradle의 이점을 사용하기 위해 Gradle로 넘어오는 상황이다.
참고자료
'Back-end > Spring 개념' 카테고리의 다른 글
6. Spring Container의 다형성 (0) | 2022.02.01 |
---|---|
5. Spring Container (0) | 2022.01.31 |
4. Spring을 사용하는 이유 (1) | 2022.01.27 |
3. SOLID 원칙 (0) | 2022.01.26 |
2. 다형성(Polymorphism)과 객체지향 프로그래밍(OOP) (0) | 2022.01.24 |
댓글