1. JAR, WAR, EAR
- 애플리케이션을 쉽게 배포하고 동작시킬 수 있도록 리소스, 속성 파일 등 관련 파일들을 패키징한다.
- 파일 규모: EAR > WAR > JAR > CLASS
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 |