배경
- tomcat 으로 war 파일을 배포할 때 궁금증이 생겼다. war와 war(exploaed)의 차이가 무엇일까?
기본
- 빌드(Build) : 소스코드 파일을 실행 가능한 소프트웨어 산출물로 만드는 일련의 과정을 말한다.
- Maven에서 Artifact : maven build의 결과로 얻을 수 있는 일반적인 .jar나 .war 또는 여타의 실행 파일을 의미한다. 빌드로 생성되는 프로젝트의 결과물이다.
- 배포(Deploy) : 응용 프로그램을 서버 상에서 활용할 수 있도록 구동시키는 것을 의미한다. 실행 가능한 파일을 서버에 올려 사용자가 이용할 수 있게 하는 것을 의미한다.
웹 어플리케이션 배포 위한 패키지 유형
1. package(archive)
- 아카이브(.war, .ear) 파일로 배포
- 아카이브는 WAS(Tomcat)에 의해 압축이 풀린다.
- 파일이 많은 경우 압축을 푸는 시간이 오래 걸릴 수 있다.
- 원격 서버에 배포시 한 개의 파일만 전송하면 된다.
- WAS(Tomcat)에서 제공하는 업로드를 통한 배포 기능을 활용할 수 있다.
2. exploded(expanded)
- 아카이브를 압축 해제한 형태의 디렉터리로 배포
- 별도의 디렉터리에 원본 소스를 복사하여 만든다.
- 압축 및 해제 과정이 불필요하다.
- 파일이 많은 경우 복사하는 시간이 오래 걸릴 수 있다.
- 원본 소스를 건드리지 않고 배포를 원하는 경우에 적합하다.
- 원격 서버에 배포시 파일이 많은 경우 전송 시간이 오래 걸릴 수 있다
3. in-place
- 소스 디렉터리(전체 또는 일부)를 그대로 배포
- 추가적인 복사 과정 불필요하다.
- 로컬 서버에 배포하는 경우에 적합하다.
- WAS(Tomcat)가 런타임시 생성하는 파일이 소스와 섞일 수 있는 문제가 있다.
war, war(exploaed) 차이
- xxxxx:war와 xxxxx:war exploded 가 존재하는데, exploded는 압축 해제 후 배포하는 방법을 의미한다.
https://gmlwjd9405.github.io/2018/12/24/intellij-tomcat-war-deploy.html
https://geunyang93.tistory.com/26