본문으로 바로가기

빌드(Build)란? Ant, Maven의 차이점 등

category Language/JAVA 2013.12.30 15:25

빌드(Build)란?  Ant, Maven의 차이점 등


Java에서 Build라고 하면 가장 먼저 나오는 도구가 Ant, Maven이다. 이 도구들이 사용해보면 아주 편하고, 많이들 사용하니까 자주 언급되는 것이다.





여태껏 로컬에서만 실행하다보니 '빌드'라는 것을 할 일이 없었다. 하지만 내가 개발한걸 Web Server에 편하게 배포하고 테스트 하기 위해서는 Build라는 과정을 거칠 수 밖에 없었다.


그래서 한동안Ant를 사용하다가 지금은 좀 더 많은 기능, 편한 기능이 들어있는 도구인 Maven을 사용하기 시작했다. 써보니까 너무 좋다. Maven으로 넘어가기 전에 Ant도 잠깐 써보면 Maven으로 넘어가는데 도움이 되리라고 본다.


일단 Ant가 뭔지 알아보자. '곱하기'를 배우려면 '더하기'의 개념이 필요하듯이 Maven을 이해하려면 Ant의 개념을 알고 한두번쯤 사용해보는게 다음 단계로 진행하는데 도움이 된다. 그냥 Maven부터 써도 상관은 없다.


Ant가 뭐냐면 내가 빌드 스크립트를 짜 놓으면 그대로 실행 해주는 '도구'이다. 주로 하는 일은 우리가 만든 소스코드를 .war이나 .jar로 압축 한다음에 사용자들이 실행 할 수 있도록 웹 서버에 올려주거나 '실행 파일'로 만들어 주는 일을 한다.


굳이 Ant나 Maven을 안써도 손으로 해도 되긴 하다. 하지만 하루에 10 - 20번 이클립스에서 Export하고 tomcat접속해서 .war파일 올리고 이런걸 하다보면 '이거 편하게 할 수 있는거 없나?' 하는 생각이 들 것이다. 그럴때 ant를 찾게끔 되어있다. 귀찮음은 창조의 어머니 아니겠는가.

근데 빌드(Build)가 뭐냐고?



· 빌드(Build)란?


예를 들어 설명하자면 윈도우를 개발 하는 것까지가 '개발'이라고 할 수 있고 이게 개인들 컴퓨터에 설치 되어서 실행 되기까지의 단계를 모두 빌드라고 할 수 있다.


1.이를테면 DVD굽는 공장에서 Window 이미지를 DVD에 저장하고

2.DVD를 포장하고

3.배송하고

4.그걸 설치 해서

5.사용자가 실행 할 수 있도록


하는 단계를 '빌드(Build)'라고 할 수 있다.



그런데 보통 내 PC나 노트북에서 이클립스나 에디트 플러스로 개발하고 실행하는건 '빌드'라는게 필요 없어 보인다.


소스코드를 짜놓고 '실행'버튼을 누르면 'Hello World'가 나오기 때문이다.


개인이 개발해서 실행하는거면 DVD를 구워서 배송해서 설치하는 과정은 필요 없어 보인다.


하지만 우리가 개발은 하는 목적은 우리가 만든 프로그램(App이 될 수도 있고, 특정 코드가 될 수도 있고 등등)을 사용자가 사용할 수 있도록 만드는게 목적 아니겠는가?


그런데 사용자가 사용할 수 있도록 만들려면 '빌드(build)'라는 과정을 거쳐야 한다.



내가 주로 만지는게 Web app이다. PC던 핸드폰이던 인터넷 주소를 치고 들어가면 볼 수 있는 모든 화면이 Web app이라고 할 수 있는데 웹앱을 만들어 놓고 내 로컬에 올려놓은 서버에서만 돌리면 의미가 별로 없지 않겠는가?


그래서 서버에 내가 개발한 프로그램을 올려서 전 세계 모든 사람들이 인터넷 주소를 치고 들어오면 내가 만든 web app을 사용할 수 있게 하려면 빌드를 해야 한다.


보통 jsp/servlet 기반의 App을 빌드 하게 되는데, 이 과정에 포함되는 것은 아래와 같다.


1.내가 만든 소스코드를 helloWorld.war로 압축한다.

2.helloWorld.war 을 tomcat이 깔려있는 원격 서버(http://oceanfog.iptime.org:8080/admin/)에 올린다.


이 두 과정이라고 할 수 있다.


이걸 ant로 작성을 해놓으면 'Export - next - next - tomcat접속 - admin접속 - war file선택 - deploy클릭'등 이러한 과정을 마우스 클릭 한번으로 해결 할 수 있다는 것.


테스트를 해보려면 직접 user가 보는것과 동일한 환경에서 해보는 경우가 많은데 프로그램을 수정하고 빌드하고 수정하고 빌드하고 이걸 하루에 2-30번씩 위에 과정을 한다고 생각해 보라! 얼마나 귀찮은가.


그래서 사용했던게 Ant라는 지금은 이클립스에 기본 탑재 되어있는 플러그인인데 이 기능 + @ 기능을 가진게 Maven이다.



Maven에 관한 글은... 기회가 되는 대로 포스팅 해보도록 하겠다. 그럼 이만...














댓글을 달아 주세요

  1. 2014.07.25 11:36

    비밀댓글입니다

  2. BlogIcon welin 2016.06.11 13:54 신고

    잘 보고 갑니다! 빌드도구에 대해 정리하는데 도움됬어요! :) 제 블로그에 출처 남기고 일부내용 퍼갈게요

  3. ㅇㅇ 2018.06.08 11:24 신고

    정리 깔끔하게 잘 해주셨네요 덕분에 잘 배우고 갑니다 :) 혹시 maven에 대해서는 포스팅 계획이 없으신가요?