반응형
공통점
- JAVA의 jar 툴을 이용하여 생성된 압축(Archive) 파일이다.
- 애플리케이션을 쉽게 배포하고 동작시킬 수 있도록 관련 파일(리소스, 속성 파일 등)들을 패키징 해준다.
보통 Maven 등을 통해서 내려받는 라이브러리들은 CLASS 파일들이 묶인 jar파일로 구성되어 있다.
서비스 배포 시에 프로젝트를 WAR 포맷 형식으로 묶어서 /webapps 등의 지정된 경로에 넣고 Tomcat 등의 웹 컨테이너(web contaioner)를 이용하여 deploy 하는 식으로 서비스를 배포한다.
차이점
JAR(Java Archive)
- .jar 확장자 파일에는 Class와 같은 Java 리소스와 속성 파일, 라이브러리 및 액세서리 파일이 포함한다.
- 즉, Java 애플리케이션이 동작할 수 있도록 자바 프로젝트를 압축한 파일이다.
- JAR 파일은 플랙폼에 귀속되는 점만 제외하면 Win Zip 파일과 동일한 구조이다.
- JAR 파일은 원하는 구조로 생성이 가능하며 JDK에 포함하고 있는 JRE만 가지고도 실행이 가능하다.
JAR 패키징은 클라우드를 염두에 둔 선택이다.
WAR 파일은 기존의 자바 애플리케이션 서버에 애플리케이션을 배포할 때는 적합하지만 대부분의 클라우드 플랫폼을 구성하는데는 잘 맞지 않는다.
일부 클라우드 플랫폼에서는 WAR파일을 배포하고 실행할 수 있다. 그러나 모든 자바 클라우드 플랫폼은 실행 가능한 JAR파일을 사용한다.
따라서 Spring Initializer에서도 JAR 패키징을 기본값으로 사용하는 것이다.
WAR(Web Application Archive)
- .war 확장자 파일은 servlet/jsp 컨테이너에 배치할 수 있는 웹 애플리케이션(Web Application) 압축 파일 포맷이다.
- JSP, SERVLET, JAR, CLASS, XML, HTML, JAVASCIRPT 등 Servlet Context 관련 파일들로 패키징 되어 있다.
- 웹 응용 프로그램을 위한 포맷이기에, 웹 관련 자원만 포함하고 있으며 이를 사용하면 웹 애플리케이션을 쉽게 배포하고 테스트 가능하다.
- 원하는 구성을 할 수 있는 JAR 포맷과는 달리 WAR는 WEB-INF 및 META-INF 디렉터리로 사전 정의가 된 구조를 사용한다.
- WAR파일을 실행하려면 Tomcat, Weblogic, Websphere 등의 웹 서버(WEB)또는 컨테이너(WAS)가 필요하다.
만일 기존의 자바 애플리케이션 서버에 우리 애플리케이션을 배포하고자 한다면 WAR 패키징을 선택하고 웹 초기 설정 클래스를 포함시켜야 한다.
정리
jar,war는 둘다 자바 클래스 패키징 확장자를 말하며, 프로젝트를 압축해서 배포할 때 사용된다.
둘의 차이는
jar는 클라우드 환경에 보통 사용되고,
war는 웹 어플리케이션 전용 패키징이고,
jar는 웹 서버가 내장되어 있어 웹 사이트 배포에 좀 더 특화 되어있다고 보면된다.
참고
https://ifuwanna.tistory.com/224
반응형
'Java' 카테고리의 다른 글
[JAP] 트랜잭션이란 무엇일까? (0) | 2022.08.19 |
---|---|
[MYSQL] AES_ENCRYPT / AES_DECRYPT (0) | 2022.08.18 |
[React] JWT 토큰과 localStorage 로그인 (0) | 2022.08.08 |
[JWT 저장] localStorage vs Cookie 비교 (0) | 2022.08.04 |
[node.js] JWT 토큰 발급 & JWT 미들웨어 설정 (0) | 2022.08.03 |