- 들어가기 전에
앞에서 JSTL에 대해 배울 때 JSTL과 관련된 라이브러리를 다운로드 하여, WEB-INF/lib 폴더에 복사하여 설치했다. 프로젝트가 복잡해질 수록 사용하는 라이브러리는 많아지게 된다. 프로젝트에 참여하는 사용자가 많아질수록 라이브러리의 관리는 어려워진다. 또한, 프로젝트가 복잡해질 수록 소스를 컴파일하고 배포하는 것도 점점 어려워진다. 이러한 문제를 해결하기 위해 다양한 도구들이 존재하는데, 그 중에서 Maven에 대해 배워보자.
- 학습 목표
1. Maven의 역할에 대해 이해한다.
- 핵심 개념
- Maven
- CoC
- pom.xml
- 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 파일이 생성된다.
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://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> | cs |
· project : pom.xml 파일의 최상위 루트 엘리먼트(Root Element)
· modelVersion : POM model의 버전
· groupId : 프로젝트를 생성하는 조직의 고유 아이디를 결정한다. 일반적으로 도메인 이름을 거꾸로 적는다.
· artifactId : 해당 프로젝트에 의하여 생성되는 artifact의 고유 아이디를 결정한다. Maven을 이용하여 pom.xml을 빌드할 경우 다음과 같은 규칙으로 artifact가 생성된다. artifactid-version.packaging. 위 예의 경우 빌드할 경우 mysamexamples-1.0-SNAPSHOT.jar 파일이 생성된다.
· packaging : 해당 프로젝트를 어떤 형태로 packaging 할 것인지 결정한다. jar, war, ear 등이 해당된다.
· version : 프로젝트의 현재 버전. 추후 살펴보겠지만 프로젝트가 개발 중일 때는 SNAPSHOT을 접미사로 사용한다. Maven의 버전 관리 기능은 라이브러리 관리를 편하게 한다.
· name : 프로젝트의 이름
· url : 프로젝트 사이트가 있다면 사이트 URL을 등록하는 것이 가능
- Maven 을 이용할 경우 얻게 되는 큰 이점 중의 하나는 Dependency Management 기능이다. 위 pom.xml 파일에서 <dependencies/> 엘리먼트가 Dependency Management 기능의 핵심이라고 할 수 있다. 해당 엘리먼트 안에 필요한 라이브러리를 지정하게 된다.
'Progamming > BoostCourse' 카테고리의 다른 글
Rest API란? (0) | 2019.01.22 |
---|---|
JDBC란? (0) | 2019.01.22 |
DDL(create, alter, drop) (0) | 2019.01.22 |
DML(select, insert, update, delete) (0) | 2019.01.22 |
SQL이란? (0) | 2019.01.22 |
댓글