[ Maven(메이븐) ]
- 자바 프로젝트를 위한 통합 빌드 툴(Build Tool)
- 프로젝트, 라이브럴, 의존관리를 자동 관리해주는 프로젝트 관리 도구
- 빌드 과정의 프레임워크 이자 자동화 시스템
빌드 란?
컴파일을 포함해 개발자가 짠 코드가 실제로 컴퓨터에서 실행되기 위한 모든 과정과 결과물
다만 자동화된 빌드툴 엇빙 수동으로 빌드를 관리할 경우, 프로젝트가 커질 수 록 개발자가 정상적인 빌드 ㅗ가정을 위해 신경써야할 부분들이 엄청 늘어나게 된다. 또한 다른 사람들과 협업 할 경우 이런 과정들을 한땀한땀 수동으로 맞춰주면서 작업해야하기 때문에 효율성도 줄어들고 예기치 못한 장애로 이어질 가능성도 높아지게 된다.
규모가 크고 구조가 복잡한 프로젝트에서는 이 구조를 자동으로 관리해줄 수 있는 빌드툴을 사용해 프로젝트를 진행하는 것이 일반적이다.
메이븐과 같은 빌드툴은 전체 빌드 과정을 정형화 해둔 프레임워크 이기 때문에 일련의 작동 방식과 구조가 정해져 있다. 또한 여기서 많은 부분을 알아서 자동으로 처리해준다. 개발자는 빌드툴의 구조에 따라 개발자가 해야할 일부분만 처리해 주면 된다. 따라서 빌드툴을 적영해 작성되고 배포된 프로젝트는 로컬의 개발환경에 좌우되지 않고 일관성 있는 기준을 가지기에 프로젝트가 커질수록 효율성을 높여준다.
직접 빌드 기준을 만들어서 일련의 과정을 모드 컨트롤 하는 것은 결국 아무런 프레임워크 없이 프로젝트를 진행하는 것과 같다. 잘 만들어진 프레임워크 사용은 대부분 백지 상태에서 시작하는 것보다 효율적 이다.
어플리케이션 개발 뿐 아니라 빌드 과정 또한 마찬가지이며, 스프링 프레임워크 를 사용해 개발을 효율적으로 하듯이 빌드툴을 이용해 빌드를 효율적으로 하는 것이다.
그리고 메이븐을 사용 할 경우 개발자가 라이브러리 관리를 따로 하지 않아도 된다는 큰 이점이 추가로 생긴다.
만약 메이븐이 없다면 관련된 모든 라이브러리 파일(.jar) 을 인터넷에서 다운 받아 직접 프로젝트 빌드구조에 맞게 삽입해줘야 하겠지만, 메이븐을 사용해 빌드시킨다면 메이븐의 글로벌 저장소에 해당 라이브러리와 이 라이브러리가 내부적으로 사용하고 있는 다른 라이브러리들을 모두 자동으로 다운받아 개발자가 사용할 수 있도록 내부 환경을 셋팅해준다.
이를 메이븐의 의존성(Dependency) 관리 라고 한다.
결론적으로 개발자는 실제 라이브러리(.jar) 을 직접 관리할 필요 없이, "pom.xml" 파일만 잘 관리 해주면 된다.
그냥 lib 폴더에 파일을 몰아넣으면 서로 간의 관계를 파악하기 힘들고 버전 파악이 힘들 수도 있지만 이런 문제를 깔끔하게 해결해 주는 것이다.
'Spring' 카테고리의 다른 글
Spring (0) | 2020.11.18 |
---|---|
RedirectAttributes (0) | 2020.11.18 |
클래스 (0) | 2020.11.09 |
Spring(스프링) 프로젝트의 폴더 구조 (0) | 2020.10.26 |
프레임 워크 와 라이브러리의 차이 (0) | 2020.10.25 |