Java / / 2022. 8. 10. 10:20

[Java] JAR vs War 비교 분석

반응형

 

공통점

  • JAVA의 jar 툴을 이용하여 생성된 압축(Archive) 파일이다.
  • 애플리케이션을 쉽게 배포하고 동작시킬 수 있도록 관련 파일(리소스, 속성 파일 등)들을 패키징 해준다.

 

 

보통 Maven 등을 통해서 내려받는 라이브러리들은 CLASS 파일들이 묶인 jar파일로 구성되어 있다.

서비스 배포 시에 프로젝트를 WAR 포맷 형식으로 묶어서 /webapps 등의 지정된 경로에 넣고 Tomcat 등의 웹 컨테이너(web contaioner)를 이용하여 deploy 하는 식으로 서비스를 배포한다.

 


 

 

차이점

JAR(Java Archive)

  • .jar 확장자 파일에는 Class와 같은 Java 리소스와 속성 파일, 라이브러리 및 액세서리 파일이 포함한다.
  • 즉, Java 애플리케이션이 동작할 수 있도록 자바 프로젝트를 압축한 파일이다.
  • JAR 파일은 플랙폼에 귀속되는 점만 제외하면 Win Zip 파일과 동일한 구조이다.
  • JAR 파일은 원하는 구조로 생성이 가능하며 JDK에 포함하고 있는 JRE만 가지고도 실행이 가능하다.

JAR 패키징은 클라우드를 염두에 둔 선택이다.

 

WAR 파일은 기존의 자바 애플리케이션 서버에 애플리케이션을 배포할 때는 적합하지만 대부분의 클라우드 플랫폼을 구성하는데는 잘 맞지 않는다.

 

일부 클라우드 플랫폼에서는 WAR파일을 배포하고 실행할 수 있다. 그러나 모든 자바 클라우드 플랫폼은 실행 가능한 JAR파일을 사용한다.

 

따라서 Spring Initializer에서도 JAR 패키징을 기본값으로 사용하는 것이다.

 

WAR(Web Application Archive)

  • .war 확장자 파일은 servlet/jsp 컨테이너에 배치할 수 있는 웹 애플리케이션(Web Application) 압축 파일 포맷이다.
  • JSP, SERVLET, JAR, CLASS, XML, HTML, JAVASCIRPT 등 Servlet Context 관련 파일들로 패키징 되어 있다.
  • 웹 응용 프로그램을 위한 포맷이기에, 웹 관련 자원만 포함하고 있으며 이를 사용하면 웹 애플리케이션을 쉽게 배포하고 테스트 가능하다.
  • 원하는 구성을 할 수 있는 JAR 포맷과는 달리 WAR는 WEB-INF 및 META-INF 디렉터리로 사전 정의가 된 구조를 사용한다.
  • WAR파일을 실행하려면 Tomcat, Weblogic, Websphere 등의 웹 서버(WEB)또는 컨테이너(WAS)가 필요하다.

만일 기존의 자바 애플리케이션 서버에 우리 애플리케이션을 배포하고자 한다면 WAR 패키징을 선택하고 웹 초기 설정 클래스를 포함시켜야 한다. 

 

정리

jar,war는 둘다 자바 클래스 패키징 확장자를 말하며, 프로젝트를 압축해서 배포할 때 사용된다.

 

둘의 차이는

jar는 클라우드 환경에 보통 사용되고,

war는 웹 어플리케이션 전용 패키징이고,

jar는 웹 서버가 내장되어 있어 웹 사이트 배포에 좀 더 특화 되어있다고 보면된다.

 

참고

https://ifuwanna.tistory.com/224

 

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유