1. JAR, WAR, EAR

- 애플리케이션을 쉽게 배포하고 동작시킬 수 있도록 리소스, 속성 파일 등 관련 파일들을 패키징한다.

- 파일 규모: EAR > WAR > JAR > CLASS

JAR, WAR, EAR 비교

 

1.1 JAR(Java Archive)

- 내장 서버 사용에 최적화되어 있다.

- 하나의 애플리케이션 기능이 가능하도록 java 파일을 압축하고 지원한다.

- JDK(Jaba Development Kit)에 포함되어 있는 JRE(Java Runtime Environment)만 가지고도 실행이 가능하다.

- 원하는 구조로 구성이 가능하다.

 

1.2 WAR(Web Application Archive)

- 내장 서버도 사용 가능하지만, 주로 외부 서버에 배포하는 목적으로 사용한다.

- JAR 옵션을 이용해 생성하는 JAR 파일의 일종이다.

- 웹 애플리케이션을 지원하기 위한 압축 방식이다.

- JSP, SERVLET, GIR, HTML, JAR, CLASS, XML, JAVASCRIPT 등 Servlet Context 관련 파일들을 지원한다.

- 원하는 구성을 할 수 있는 JAR와 달리 배포 디스크립터(WEB-INF 및 META-INF 디렉토리로 사전 정의된 구조)를 사용해야 한다.

- 실행에 웹 서버 또는 WAS가 필요하며, 단독 실행은 불가능하다.

 

1.3 EAR(Enterprise Archive)

- Java EE(Enterprise Edition)에 쓰이는 파일 형식으로, 한 개 이상의 모듈을 단일 아카이브로 패키징하여 애플리케이션 서버에 동시에 일괄적으로 올리기 위하여 사용된다.

 

참고

- https://ifuwanna.tistory.com/224

- https://velog.io/@modsiw/JAVA-JAR-WAR-EAR-%EC%9D%B4%EB%9E%80

- https://stackoverflow.com/questions/5871053/difference-between-jar-and-war-in-java

- 『스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술』

'Java' 카테고리의 다른 글

BufferedReader, BufferedWriter  (0) 2021.12.02
Abstract Class, Interface 차이점  (0) 2021.11.25
HashTable, HashMap, ConcurrentHashMap 차이점  (0) 2021.10.08
SOLID 원칙  (0) 2021.10.06
객체 지향 프로그래밍과 절차적 프로그래밍  (0) 2021.10.06