Java&Web

[Java] JAR, WAR 그리고 EAR

프로그래민 2021. 2. 9. 15:55
반응형

J2EE(Java 2 Enterprise Edition, Java 기술로 기업환경의 어플리케이션을 만드는데 필요한 스펙들을 모아둔 스펙 집합) 애플리케이션에서 모듈은 기능에 따라 JAR, WAR 그리고 EAR로 패키징이 될 수 있다. JAR, WAR, EAR에 대해 알아 보았다.

JAR, WAR 그리고 EAR

JAR란?

JAR란 Java Archive의 줄임말로써 .jar 확장자를 가지는 파일이다. Java 애플리케이션이 동작할 수 있도록 Java 프로젝트를 압축한 파일로써, 내부에는 Class와 같은 Java 리소스와 속성파일 그리고 라이브러리등이 포함되어있다.

JAR 파일은 JRE만으로도 실행이 가능하며, Java 플랫폼에 귀속된다는 것을 제외하면 zip 파일과 같은 구조이다. 또한, JAR는 원하는 구조로 구성을 할 수 있는 것이 특징이다.

test.jar의 구조예시

 

WAR란?

WAR란 Web Application Archive의 줄임말로써 .war 확장자를 가지는 파일이다. 웹 애플리케이션 전체를 패키징하기 위한 웹 애플리케이션 압축 파일로써, 내부에는 Java 파일 뿐 만 아니라 JSP, Servlet, JS, XML 등 Servlet Context 관련 파일들도 패키징이 되어있다.

WAR는 웹 애플리케이션을 위한 포멧이기에 웹 관련 자원을 포함하고 있으면 이를 이용하여 웹 애플리케이션을 쉽게 배포하고 테스트할 수 있다. JAR와 달리 WAR는 WEB-INF, META-INF 등의 사전 정의 된 구조를 사용하고, WAR 파일의 실행을 위해서는 웹 서버 또는 WAS가 필요하다. 

test.war의 구조예시

Springboot 환경에서 main/webapp 폴더를 war 파일의 경우 포함을 시키는 것을 확인할수 있지만, jar 파일의 경우 main/webapp 폴더를 무시하는 것을 확인할 수 있다.

 

EAR란?

EAR란 Enterprise Archive의 줄임말로써 .ear 확장자를 가지는 파일이다. 한 개 이상의 모듈을 단일 아카이브로 패키징하여 애플리케이션 서버에 동시에 일괄적으로 올리기 위하여 사용하는 포멧이다.

 

출처
stackoverflow.com/questions/5871053/difference-between-jar-and-war-in-java
simuing.tistory.com/269

 

반응형