본문 바로가기
개발관련/JAVA

JAVA) 배포란 무엇이고 어떻게 할까? jar? war?

by joa-yo 2020. 7. 2.
반응형

java를 사용하여 구현한 프로그램을 알맞은 형태로 변환하여 환경에 맞게 설정해야 만든 프로젝트를 실행시킬 수 있는데, 이 일을 배포라고 한다. 이 배포를 통해서 소중한 프로그램을 세상에 알릴 수 있다. 그렇다면 배포는어떻게 하는 것일까?

 

1. 프로젝트 추출 방법(Export)

 jar는 java archive의 줄임말이며, war는 web Application archive의 줄임말이다. archive는 압축일을 의미하므로 jar는 자바 압축파일, war는 웹 어플리케이션 압축파일이라고 할 수 있다.

 

자바 어플리케이션 추출

자바 어플리케이션은 java만 설치되어 있다면 실행할 수 있는 프로그램이다. 독립적으로 실행될 수 있으며, 데몬(백그라운드에서 자동 수행되는 작업을 수행하는 프로그램)이 이에 해당한다. 이러한 프로그램은 jar로 추출한다.

 

.jar파일은 class파일, 속성 및 설정파일, 라이브러리 등 java어플리케이션을 실행하기 위해 필요한 파일들을 모아둔 파일이다.

 

웹사이트 추출

네이버, 다음, 구글과 같은 포털사이트나, 은행, 쇼핑몰과 같이 우리가 브라우저와 인터넷을 통하여 접근할 수 있는 웹페이지를 웹사이트라고 한다. 웹사이트를 보여주기 위해 필요한 모든 요소들을 추출하는 방식으로 war가 있다. 웹문서, 자바스크립트, JSP, 이미지 등등 웹자원들을 포함하고 있으며, 사이트를 구동하기위한 class파일, 속성파일과 같은 소스파일도 포함되어 있다.

 

2. 반영

반영은 정해진 규칙은 없다. 회사나 단체에서의 배포방식이 다 다를 뿐이다. 내가 알고 있는 배포방식을 한 번 늘어놓아 보겠다. 

 

1. tomcat을 설정하여, war파일을 올리면 자동적으로 배포되도록 한다.

  - 서버 설정파일에서 별도로 설정해주고, 웹프로젝트를 war로 추출한다.

2. 소스파일 경로에 수정한 파일만을 반영하고, 서버를 재실행한다.

  - war로 추출하고 수정된 파일만을 서버에 반영한다. 이후 서버를 재실행한다.

3. 자동 배포 프로그램을 사용한다.

  - war로 추출할 필요 없이, git과 같은 소스코드 버전관리 시스템과 젠킨스와 연동하여 자동 배포한다.

 

젠킨스란?

https://www.jenkins.io/

 

Jenkins

Beginning with Jenkins 2.335 and Jenkins 2.332.1, the Jenkins project is migrating from System V init(8) to systemd(1) in its official Debian, Red Hat, and openSUSE packages. The official Docker image and Helm chart remain unchanged. For up-to-date informa

www.jenkins.io

 

 

 

 

 

 

 

 


 

 

참조

https://stackoverflow.com/questions/5871053/difference-between-jar-and-war-in-java

 

 

 

 

반응형

댓글