Jave & Kotlin

Java - JAR 파일이란? WAR EAR

devLog by Ronnie's 2022. 10. 28. 22:12

자바로 개발을 하게 되면 JAR와 WAR 파일을 봤을 것이다. 각각의 정의를 알아보고 추가적으로 EAR의 정의도 정리한다.

 

 

Java - JAR 파일이란? WAR EAR 

 

Jar 파일이란?


Jar 파일이란 Java Archive Files 의 약자로 일종의 자바 프로젝트 압출 파일을 의미한다.

Jar 파일 안에는 여러개의 자바 클래스 파일들과 해당 클래스들이 이용하는 관련 리소스 등의 메타데이터를 하나의 파일로 모아서 배포하기 위한 소프트웨어 패키지 파일 모맷이다. 이렇게 하나의 파일로 압축되어 있으면 여러 파일들을 따로 받는 것이 아니기에 편리하고 시간도 절약된다.

 

실행을 하기위해서는 JDK에 포함되어 있는 jar 명령어를 이용해서 실행이 가능하다. 

추가적으로 zip 파일 압축 알고리즘을 기반으로 만들어져 있기 때문에 알집과 같은 zip 프로그램과 호환이 가능하다.

 

 

EAR과 WAR


이외에도 EAR과 WAR이 있는데 EAR은 Enterprise Archive의 약자로 하나의 웹 애플리케이션 단위를 넘어 실 서버에 배포하기 위한 단위를 뜻하며 jar와 war를 묶어서 각각의 기능을 지원한다.

 

WAR Web Archive 약자로 애플리케이션을 지원하기 위한 압축 방식으로써 jsp, servlet, gif, html, jar 등을 압축하고 지원한다. 이렇듯 WAR 응용 애플리케이션을 위한 포맷이기 때문에 관련 자원만 포함하고 있으며 이를 사용하면 애플리케이션을 쉽개 배포하고 테스트 있다는 장점이 있다. 반면 원하는 구성을 있는 JAR 포맷과는 달리 WAR WEB-INF META-INF Directory 정의되어진 구조를 사용하며 WAR파일을 실행하기 위해서는 톰캣과 같은 서버 또는 컨테이너(WAS) 필요하다.

 

 

정리


단위로 보았을 때 EAR > WAR > JAR > CLASS 순이다. JAR와 WAR는 둘 모두 Java의 jar툴을 이용하여 생성된 압축 파일이라고 생각하면 되며 목적은 어플리케이션을 쉡게 배포하고 동작시킬 수 있도록 관련 클래스 및 라이브러리 등의 파일등을 패키징해주는 역할이라고 정리하면 된다.

 

추가적으로 스프링부트로 개발을 해당 프로젝트를 빌드하게 되면 libs 폴더 내의 다음과 같이 jar 파일이 두개가 생성되는 것을 있다.

이렇게 생성이 되지 않다면 plain 파일을 생성하지 않도록 설정이 되어 있는 것이다. 다음에는 일반 jar 파일과 plain jar 파일의 대해 정리하고 생성되지 않도록 설정하는 방법에 대해 정리한다.