[Java] jar, war 차이점
jar와 war 모두 java의 jar 툴을 이용해서 생성도니 압축(아카이브) 파일입니다. 앱을 쉽게 배포하고 동작할 수 있도록 관련 소스들을 패키징 해주는 것이 주 역할입니다.
JAR, java Archive
maven 등을 통해 내려받은 라이브러리들은 CLASS 파일이 묶인 jar 파일로 구성되어 있습니다.
class와 같은 java 리소스와 속성 파일, 라이브러리 등의 파일이 포함되어 있습니다. java 앱이 동작할 수 있도록 자바 프로젝트를 압축한 파일이고, 플랫폼에 귀속되는 점만 제외하면 win의 zip과 동일한 구조입니다. 원하는 구조로 구성이 가능하고 JDK 안의 JRE만 있으면 실행할 수 있습니다.
War, Web Application ARchive
서비스 배포시에는 WAR 포멧으로 묶어서 /webapps 등의 지정된 경로에 넣고 Tomcat 등의 웹 컨테이너를 이용하여 deploy하는 식으로 서비스를 많이 합니다.
servlet/jsp 컨테이너에 배치할 수 있는 웹앱 압축 파일 포멧입니다. JSP, servlet, jar, class, xml, html, javascript 등 servlet context 관련 파일들로 패키징 되어있습니다. WAR는 웹 앱을 위한 포멧이기 때문에 웹 관련 자원만 포함하고 있으며 이를 사용해서 웹 앱을 쉽게 배포할 수 있습니다.
war 파일도 java의 -jar 옵션을 이용해 생성하는 jar 파일의 일종으로 웹앱 전체를 패키징하기 위한 jar 파일정도로 생각하면 됩니다.