용어만 익숙한 것들이라 다시 정리하면서 내가 남에게도 설명할 수 있을 정도로 익혀보자.
MAVEN 프로젝트 전체적인 라이프 사이클을 관리하는 도구, 자바용 프로젝트를 빌드를 자동화 해주는 build tool이다.
Conversion over Configuration CoC 개념으로 프로그램을 구성할 때 소스파일은 어떤 위치에 있어야하고 컴파일된 파일들은 어떤 위치에 있어야하는지 미리 정해 놓는 것이다.
메이븐..이라고 하면 환경 설정을 할 때, 복잡하고 까다롭게 ... 느껴지는데, 결론적으로는 배포를 편하게 해주기 위한 도구이다!
수동으로 라이브러리를 추가하는 번거로움과 규모가 큰 프로젝트를 진행할 때 더 복잡해지는 과정을 방지하기 위해서 라이브러리들을 편리하게 공유하고 다운받고자 나온 것이 메이븐이다.
프젝 생성>라이브러리 설정>코드작업>컴파일>테스트>패키지 생성>배포>레포팅(문서작업) = 하나의 프로젝트를 만드는 작업 과정이다.메이븐은 이러한 과정을 경량화 시켜줄 수 있도록 도와주는 도구이다.
근데 이클립스같은 IDE에서 프로젝트를 생성하는데, 이것도 빌드툴인가? nope...!
IDE는 개발을 위해서 더 많은 기능을 이용할 수 있도록 해주는 개발 도구이다.
빌드 도구(Maven/Gradle/Ant), 버전형성관리 도구(git/cvs), 테스트 도구(JUnit) 등을 통!합!환경이 IDE이다.
메이븐으로 jar파일을 별도로 공유하고 추가할 일없이 pom.xml에 필요한 것을 명시해놓으면 직접 다운로드를 하지 않아도 네트워크를 통해서 라이브러리를 손쉽게 다운받을 수 있다.
Maven의 장점
1. 라이브러리 관리 용이
2. 프로젝트 테스트를 지원해 준다.
3. war파일 기반의 배포용으로 자주 사용된다.
메이븐은 프레임워크로 동작 방식이 정해져있는데 일련의 단계에 연계된 goal을 실행하는 과정을 build라고 하며,
미리 정의되어있는 build들의 순서를 라이프사이클이라 한다.
미리 정의된 빌드 순서 -> 라이프사이클
빌드 단계 -> phase
모든 빌드단계가 성공적으로 실행 -> Dependency
*빌드란 프로젝트를 위해 작성한 소스코드나 여러 자원들(.xml, .jar, .properties)를 JVM이나 톰캣같은 WAS가 인식할 수 있는 구조로 패키징하는 과정 및 결과물이다.
단순히 컴파일 작업이 아닌 테스팅,검사,배포까지 일련의 작업들을 통들어 빌드라고 한다.
Maven이 참조하는 설정 파일
pom.xml
- 최상위 디렉터리 위치에 있다. POM( Project Object Model)을 설정하는 부분으로 프로젝트 내 빌드 옵션을 설정하는 부분이다.
- 아파치 재단에서 운영,관리하는 중앙 저장소(라이브러리 공유 파일 서버)를 통해 자동 의존성 관리가 가능하고 기업만의 중앙 저장소를 구축할 수도 있다.
settings.xml : maven tool 자체에 관련된 설정을 담당하여 conf 폴더 아래 위치한다. maven 자체 설정을 바꾸는 일은 드물어 pom.xml에 조작한다.
'Programming👩🏻💻' 카테고리의 다른 글
[SQLAlchemy] - 개념정리 및 입문하기 (0) | 2024.12.15 |
---|---|
Rate Limiter 이해하기 (0) | 2024.11.22 |
[Swagger] drf-spectacular로 REST API 문서 자동 생성 (1) | 2024.10.11 |
React 벼락치기 (1) | 2024.09.22 |
Ajax (Asynchronous JavaScript and XML) (0) | 2020.10.27 |