자바로 개발을 하게 되면 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 파일의 대해 정리하고 생성되지 않도록 설정하는 방법에 대해 정리한다.
'Jave & Kotlin' 카테고리의 다른 글
Kotlin - indexOf()를 통한 Data Class와 Class 특성 알아보기 (0) | 2023.01.24 |
---|---|
코틀린 - 코드 실행 시간 측정 measureTimedValue (0) | 2022.11.08 |
Kotlin - 코틀린에서의 Primitive Type (원시타입) (0) | 2022.08.27 |
Kotlin - 코틀린의 Unit 타입과 자바의 void 타입 차이 정리 (0) | 2022.08.24 |
Kotlin - 코틀린의 동일성과 동등성 비교 (Java와 차이점) (0) | 2022.07.03 |
댓글