티스토리 뷰

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

 

Java에서 Build라고 하면 가장 먼저 나오는 도구가 Ant, Maven입니다. 요즘은 Maven 아니면 Gradle입니다. Ant는 한 10년전에 사용이 되었던 것 같습니다. 요즘은 잘 사용되지는 않습니다. 이 빌드 도구들이 사용해보면 편하고, 많이들 사용하니까 자주 언급 됩니다.

 

 

 

여태껏 로컬에서만 실행하다보니 '빌드'라는 것을 할 일이 없었습니다. 하지만 내가 개발한 앱을 Web Server에 배포하기 위해서는 Build라는 과정을 거칠 수 밖에 없습니다. 왜냐하면 서버환경은 로컬 환경과 다르기 때문입니다. 우리가 로컬에 개발환경 세팅을 했기 때문에 로컬에서 어플리케이션이 실행 되는 것입니다. 서버 환경이 로컬과 다르다면 어플리케이션이 실행되지 않을 것입니다.

 

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


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

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


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

 

요즘은 기본적으로 Maven아니면 Gradle로 프로젝트를 빌드하고 시작 합니다.

빌드(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(jar)로 압축합니다.

2.helloWorld.war(jar) 을 tomcat이 깔려있는 원격 서버(http://oceanfog.iptime.org:8080/admin/)에 업로드합다.

 

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

 

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

 

이 ant를 조금 더 발전 시킨 것이 maven, gradle입니다. gradle같은 경우는 스크립트를 조금 더 상세하게 짜넣을 수 있습니다.

 

테스트를 해보려면 직접 user가 보는것과 동일한 환경에서 해보는 경우가 많은데 프로그램을 수정하고 빌드하고 수정하고 빌드하고 이걸 하루에 2-30번씩 위에 과정을 한다고 생각해 보면 자동화를 시키는게 맞습니다.

 

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

 

728x90
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함