# Maven이란
Spring을 사용하기 위해 Maven Build가 필요함.
그렇다면 Maven이란 무엇인가?
> Apache에서 자바용 프로젝트 관리 도구로 출시된 오픈소스 SW이다.
쉽게 말해 여러가지 라이브러리를 pom.xml 파일 하나만으로 네트워크를 거쳐서 자동으로 빌드해주는 관리 도구이다.
규모가 큰 프로젝트일 수록 메이븐의 효율성은 더욱 빛이 발휘된다.
자바 개발의 사실상 표준 빌드 툴(이전에는 ANT라는 수작업이 많이 필요한 툴을 사용함)
XML 설정파일을 사용(최근에는 Groovy라는 언어로 설정을 하는 Gradle이 등장)
# Convention Over Configuration(CoC)
과거에는 Application은 초기 설정이 매우 중요했었음.
모든 설정(Configuration)이 완료된 상황에서 개발이 시작되었으나 반복되는 설정이 많이 있었고 모범적인 설정들이 많이 등장하면서 표준으로 자리잡기 시작함.
설정보다는 관례에 따르겠다(표준 설정으로 따라감)
개발 디렉토리 구조, 빌드 단계
(cf. Node.js의 웹 프레임워크 Express, Configuration over Convention도 이야기 됨)
# 의존성 관리를 자동 수행
ANT에서 Maven으로 넘어온 대표적인 이유
Framework에서 수많은 Library를 관리해야 되는데, 버전과 Application 등 여러 관계에서 의존성 충돌이 발생하기도 함.
이런 문제를 해결하는데 있어, Maven은 자동으로 해결
단순히 기능적으로 관리해주는 것이 아닌 모든 Java의 모든 라이브러리들을 Maven 중앙저장소(Central Repository)에 모아둠.
# pom.xml 메이븐의 메인 설정 파일
프로젝트 루트에 위치하여 모든 설정을 관리할 수 있음
# 메이븐 프로젝트 설정 시 필수사항
프로젝트 명은 artifact ID로 사용
그룹 아이디 작명에는 주로 프로젝트 생성 조직이나 기관의 도메인명 역순(kr.co.company)
버전은 개발버전을 의미하는 SNAPSHOT 버전, 배포버전은 RELEASE 버전
'Archived(Programming) > Spring #2(기초)' 카테고리의 다른 글
Spring MVC (0) | 2020.03.11 |
---|---|
Layered Architecture & @Component (4) | 2020.03.10 |
DI(Dependency Injection) (0) | 2020.03.10 |
IoC(Inversion of Control) (0) | 2020.03.10 |
Spring 간략 소개 (2) | 2020.03.09 |