관리 메뉴

플랫폼공작소 IT Blog

[Spring] 메이븐이란 - 1부 본문

2. 강의실/[5분 스프링프레임워크]

[Spring] 메이븐이란 - 1부

솜픽(Sompic) 플랫폼공작소 2020. 4. 8. 13:55

안녕하세요. 플랫폼공작소입니다. 오늘은 메이븐이란 무엇인가? 라는 주제를 가지고 얘기를 하려합니다.


메이븐이란?

- 공식 홈페이지에 따르면, 메이븐은 "프로젝트관리도구"입니다. POM (Project Object Model) 개념을 기반으로 프로젝트에 사용되는 라이브러리 버전 관리도 해주고, 프로젝트 빌드도 해주고 심지어 자바 API 문서쓰는 것도 도와주는 도구입니다.


메이븐? 이거 왜 필요함?

- 프로젝트에 참여한 모든 개발자가 일관된 라이브러리 버전을 사용하도록 만들어줍니다. 프로젝트가 복잡해질수록 사용하는 라이브러리가 많아지게 됩니다. 이때 이 라이브러리 버전을 관리해주는 도구가 없으면 개발의 지옥문이 펼쳐집니다. 


A라는 개발자는 1.1버전..

B라는 개발자는 2.4버전.. 

C라는 개발자는 7.0버전.. 이렇게 주구난방으로 라이브러리를 사용하면 프로그램이 정상적으로 돌아갈리가 없겠죠. 이렇게 되지 않도록 중앙에서 딱 잡아주는 도구가 있었으니 그것이 바로 메이븐(Maven)이라는 것입니다.


메이븐은 그것만 해주나요?

아닙니다. 메이븐은 소스코드를 컴파일하고 배포하는 것도 도와줍니다.


소스코드 컴파일 + 배포??

- 메이븐을 이해하려면 프로젝트 빌드과정을 알아야합니다. 프로젝트 빌드과정은 다음과 같습니다.

1. 프로젝트 생성

2. 라이브러리 생성

3. 코드작업

4. 컴파일

5. 테스트

6. 패키지 만들기 -> 배포 -> 레포팅입니다.

프로그램을 개발하다보면 위 과정을 수없이 반복하게 됩니다. 그러면 낭비되는 시간이 너무 많겠죠. 따라서, 메이븐은 프로젝트의 컴파일과 배포를 도와줌으로써 시간절약도 기대되는 도구입니다. 


메이븐의 핵심개념! 라이프사이클?

- Maven에서는 clean, build, site라는 Lifecycle을 제공하고 있습니다. 그 중에서 build Lifecycle만 알아보겠습니다.


아래의 페이즈(phase)들은 모두 build 라이프사이클에 속해있습니다.

1. compile은 소스코드를 컴파일하는 페이즈이다

2. test는 JUnit, TestNG와 같은 단위 테스트 프레임워크로 단위테스트를 하는 페이즈이다.

3. package를 실행하면 compile, test-compile, test 순으로 실행된 다음 jar, war파일이 target 디렉토리 아래에 생성하는 페이즈이다.

4. install은 로컬저장소에 압축한 파일을 배포하는 페이즈이다.

5. deploy는 원격저장소로 압축한 파일을 배포하는 페이즈이다. 

*페이즈(phase) = 단계

*로컬저장소는 개발자의 PC이고 원격저장소는 외부에 위치한 서버를 말함.


만약에 3번인 Maven package를 실행하면 1번 + 2번 + 3번까지 실행되는 개념입니다.

만약 5번인 deploy를 실행하면 1번 + 2번 + 3번 + 4번 + 5번까지 실행됩니다.


다음 시간에는 이클립스에 메이븐을 설치하고 실행하는 내용을 다뤄볼까합니다.

실무에서 맨날 보게될 내용이니 꼭 눈에 담아두시면 도움이 될 것입니다.



reference https://maven.apache.org/

광고 링크 : 플랫폼공작소플랫폼공작소TV쇼핑몰



0 Comments
댓글쓰기 폼