WAR과 JAR 모두 자바의 java-jar 을 통해 생성된 아카이브 파일로 Application을 쉽게 배포하고 동작시킬 수 있게 패키징된 파일이라고 볼 수 있다.
1. JAR(Java Archive)
.jar의 확장자를 가지며, 자바 프로그램의 실행에 필요한 Class와 리소스 파일, 메타 데이터, 설정 파일 등이 .zip으로 압축되는 아카이브 파일이다.
플랫폼에 귀속된다는 점을 제외하면 .zip과 동일한 구조이고 Maven이나 Gradle을 통해 받는 라이브러리들은 Class파일이 묶인 .jar 파일로 구성된 것을 확인할 수 있다.
원하는 구조로 구성할 수 있고 JDK에 포함된 JRE만 있어도 실행은 가능하다.
장점
1. 독립적인 자바 Application을 패키징할 수 있고 실행 가능한 JAR 파일로 만들어서 쉽게 실행이 가능하다.
2. 압축된 형식으로 클래스, 리소스, 라이브러리 등을 포함한다.
3. 자바 Application의 main 메소드를 포함하여 별도의 WAS가 필요하지 않다.
단점
1. 웹 애플리케이션을 개발할 때 WAR파일에 비해 제약사항이 있다.
(ex. JSP 또는 Servlet에 대한 표준 기능 활용 어려움)
2. 동적 웹 컨텐츠 생성과 관리가 제한된다.
실행 명령어
java -jar 프로젝트명.jar
2. WAR(Web Application Archive)
.war의 확장자를 가지며, 자바의 Web Application으로 이용되는 클래스, 설정파일, JSP 또는 HTML 등이 압축된 아카이브 파일이다.
JSP나 Servlet 등 WAS 컨테이너 위에서 동작하게 빌드된 Web Application 압축 파일이다.
웹 응용 프로그램을 위한 포맷이기 때문에 웹 관련 자원만을 포함하고 Web Application을 쉽게 배포할 수 있다.
JAR파일의 일종으로 Web Application 전체를 패키징하기 위함이다.
별도의 WAS가 필요하다.
Web Application 설정에 대한 정의인 web.xml이 포함되어 배포할 경우 web.xml파일에서 설정을 불러와 배포하는 형태이다.
WEB-INF와 META-INF 디렉토리로 정의된 구조를 고정적으로 사용해야 한다.
장점
1. 자바 Web Application을 패키징하는데 최적화되어 있다.
2. 웹 구성 요소를 실행하기 위한 Servlet 컨테이너에서 필요한 설정 파일, 라이브러리, 리소스 등을 포함하여 한 번에 배포와 실행이 가능해 진다.
3. 다양한 WAS에 적용이 가능하다.
단점
1. 별도의 WAS가 필요하다.
2. 배포에 있어서 JAR에 비해 크기가 크고 번거로운 작업이 필요할 수 있다.
3. JAR과 WAR의 사용 목적
JAR은 독립적인 실행 가능한 Application을 구성하는 것으로 독립적인 자바 Application을 패키징할 때 적합하다.
WAR은 웹 한경에서 실행되는 Application을 구성하는 것으로 웹 Application을 패키징하기에 적합하다.
'Spring' 카테고리의 다른 글
[Spring] Scheduled 어노테이션 (0) | 2024.10.30 |
---|---|
[Spring] AES 암호화 알고리즘 (0) | 2024.10.28 |
[Spring] Spring에서 redis 서버 사용 (3) | 2024.09.30 |
[Spring Boot] 외장 톰캣 웹 배포하기(apache-tomcat) (0) | 2024.09.25 |
[Spring] web.xml 한글 필터 (0) | 2024.05.20 |