새소식

🍹 [5분 내로] 강의실/✏️ Spring Annotation이란?

[Maven] 꼭 알아야 하는 메이븐 개념 및 라이프사이클

728x90

 

안녕하세요. 팀드모네입니다.

오늘은 메이븐이란 무엇인가? 라는 주제를 가지고 얘기를 하려합니다. 일상생활에서 빼놓을 수 없는 핸드폰도 자세히 들여보면 숨겨진 기능도 많고습니다. 메이븐도 그와 같습니다. 자세히 보면 의외로 기능이 많습니다.

1.1 메이븐이란?

- 자바 프로젝트 빌드 자동화 툴이다.

* compile하고 package해서 deploy하는 반복 작업을 줄이기 위한 툴입니다.

 

- 프로젝트 관리 도구입니다.

* 라이브러리 버전 관리, 프로젝트 빌드 심지어 자바 API 문서까지 써주는 툴입니다.

reference : https://maven.apache.org/

 

1.2 메이븐? 이거 왜 필요함?

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

 

메이븐을 사용하지 않았습니까?
메이븐을 사용하지 않았습니까?

 

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

 

1.3 메이븐은 그것만 해주나요?
-> 아닙니다. 메이븐은 소스코드를 컴파일하고 배포하는 것도 도와줍니다.

1.4 소스코드 컴파일 + 배포?
- 메이븐을 이해하려면, 프로젝트 빌드과정을 알아야합니다. 프로젝트 빌드과정은 다음과 같습니다.
- 프로젝트 생성
- 라이브러리 생성
- 코드작업

- 컴파일

- 테스트

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

그런데, 프로그램을 개발하다보면 위 과정을 수없이 반복하게 됩니다. 낭비되는 시간이 너무 많습니다.

메이븐은 이런 부조리한 상황을 해결합니다. 프로젝트의 컴파일과 배포를 도와줌으로써 시간절약을 해주는 것이죠

 

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

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

 

2.2 실무에서 당장 쓰이는 개념! build Lifecycle

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

ㄱ. mvn compile => 소스코드를 컴파일

ㄴ. mvn test => JUnit, TestNG와 같은 단위 테스트 프레임워크로 단위테스트

ㄷ. mvn package => Maven compile, Maven test-compile, Maven test 순으로 실행된 다음 jar, war파일이 target 디렉토리에 생성

ㄹ. mvn install => 로컬 저장소로 배포

ㅁ. mvn deploy => 원격저장소로 배포

ㅂ. mvn site => target/site에 문서 생성

ㅅ. mvn site-deploy => 문서 사이트를 서버에 배포

ㅇ. mvn clean => 빌드 중 생성했던 target 디렉터리 삭제

* 로컬 저장소는 개발자의 PC

* 원격 저장소는 외부에 위치한 서버

 

메이븐을 사용하지 않았습니까?
spring에서는

 

2.3 결론 요약

mvn package를 실행하면 ㄱ + ㄴ + ㄷ가 실행됩니다.

mvn deploy를 실행하면 ㄱ + ㄴ + ㄷ + ㄹ + ㅁ까지 실행됩니다.

*즉, 자신보다 하위 개념은 모두 실행한다는 것이죠.

 

다음 시간에는 이클립스에 메이븐을 설치하고 실행하는 내용을 다뤄볼까합니다. 실무에서 맨날 보게될 내용이니 꼭 눈에 담아두시면 도움이 될 것입니다.

 

메이븐을 사용하지 않았습니까?

블로그 방문해주셔서 감사합니다.
추가로 질문사항이 있으면 댓글 남겨주세요 :)


reference : https://maven.apache.org/

광고 링크 : https://ogx4.com

 

 

반응형

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.