● Maven
-Maven은 지금까지 애플리케이션을 개발하기 위해 반복적으로 진행해왔던 작업들을 지원하기 위하여 등장한 도구
-Maven을 사용하면 빌드(Build), 패키징, 문서화, 테스트와 테스트 리포팅, git, 의존성 관리, svn 등과 같은 형상관리서버와 연동(SCMs), 배포 등의 작업을 손쉽게 할 수 있음.
-Maven을 이해하려면 CoC(Convention over Configuration)라는 단어를 먼저 이해해야 함.
-CoC란 일종의 관습을 말하는데, 예를 들자면 프로그램의 소스파일은 어떤 위치에 있어야하고, 소스가 컴파일된 파일들은 어떤 위치에 있어야하는지 미리 정해놨다는 것.
-이 말은 관습에 이미 익숙한 사용자는 쉽게 Maven을 사용할 수 있는데, 관습에 익숙하지 않은 사용자는 이러한 제약사항에 대해 심한 거부감을 느낄 수 있다.
-Maven을 사용한다는 것은 어쩌면 이러한 관습 즉 CoC에 대해서 알아나가는 것이라고도 말할 수 있다.
● Maven을 사용할 경우 얻게 되는 이점
-Maven을 사용할 경우, 굉장히 편리한 점들이 많다.
-많은 사람이 손꼽는 장점 중에는 편리한 의존성 라이브러리 관리가 있다.
-앞에서 JSTL을 학습할 때, 몇 가지 파일을 다운로드하여 /WEB-INF/lib 폴더에 복사하여 사용했었다.
-관련된 라이브러리가 많아질수록 이러한 방식은 상당히 불편해진다.
-Maven을 사용하면 설정 파일에 몇 줄 적어줌으로써 직접 다운로드 받지 않아도 라이브러리를 사용할 수 있다.
-프로젝트에 참여하는 개발자가 많아지게 되면, 프로젝트를 빌드하는 방법에 대하여 가이드하는 것도 쉬운 일이 아니다.
-Maven을 사용하게 되면 Maven에 설정한 대로 모든 개발자가 일관된 방식으로 빌드를 수행할 수 있게 된다.
-Maven은 또한 다양한 플러그인을 제공해줘서, 굉장히 많은 일들을 자동화시킬 수 있다.
● Maven 기본
Archetype을 이용하여 Maven 기반 프로젝트를 생성할 경우 생성된 프로젝트 하위에 pom.xml 파일이 생성된다. pom.xml 파일을 살펴보면 다음과 같다.
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>kr.or.connect</groupId>
<artifactId>examples</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>mysample</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
각각의 태그의 의미는 다음과 같다.
project | pom.xml 파일의 최상위 Root Element |
modelVersion | POM model의 버전 |
groupId | 프로젝트를 생성하는 조직의 고유 아이디를 결정. 일반적으로 도메인 이름을 거꾸로 적음. |
artifactId | 해당 프로젝트에 의하여 생성되는 artifact의 고유 아이디를 결정함. Maven을 이용하여 pom.xml을 빌드할 경우 다음과 같은 규칙으로 artifact가 생성됨. artifactid-version.packaging. 위 예의 경우 빌드할 경우 examples-1.0-SNAPSHOT.jar 파일이 생성됨. |
packaging | 해당 프로젝트를 어떤 형태로 packaging할 것인지 결정함. jar, war, ear 등이 해당됨. |
version |
프로젝트의 현재 버전. 추후 살펴보겠지만 프로젝트가 개발 중일 때는 SNAPSHOT을 접미사로 사용. Maven의 버전 관리 기능은 라이브러리 관리를 편하게 함. |
name | 프로젝트의 이름. |
url | 프로젝트 사이트가 있다면 사이트 URL을 등록할 수 있음. |
Maven을 이용할 경우 얻게 되는 큰 이점 중에 하나는 Dependency Management 기능이다.
위 pom.xml 파일에서 <dependencies/> 엘리먼트가 Dependency Management 기능의 핵심이라고 할 수 있다. 해당 엘리먼트 안에 필요한 라이브러리를 지정하게 된다.
다음 시간에는 Maven을 이용한 웹 애플리케이션에 대해 알아보도록 하겠다.
'CS > Database' 카테고리의 다른 글
[MYSQL] 사용법 정리 (0) | 2020.05.19 |
---|---|
[Edwith] 11. JDBC (0) | 2020.04.20 |
[Edwith] 8. DDL 알아보기 (0) | 2020.04.16 |
[Edwith] 7. DML - DELETE 알아보기 (0) | 2020.04.16 |
[Edwith] 6. DML - UPDATE 알아보기 (0) | 2020.04.16 |