백엔드

[SpringBoot] JAR 와 WAR의 차이 정리

음그냥 2023. 2. 24. 19:34
728x90
반응형
SMALL

아래는 플로우차트임

JAR vs WAR


-JAR는 jre (Java Runtime Environment)만 존재하면 프로젝트 구동이 가능하다.
-WAR는 별도의 웹서버 또는 WAS (웹컨테이너)가 있어야 프로젝트 구동이 가능하다.

 

 

 

 

JAR 

 

- JAR는 Java Archive라는 뜻
-  jsp지원하지않음 (jsp면 무조건 war선택해야함, 공식문서 7.1.9. Template Engines 문서요약)
- 여러 개의 자바 클래스 파일과 클래스에서 필요로 하는 관련 리소스들 및 메타데이터들을 하나의 파일로 모아서 자바 플랫폼에 응용 소프트웨어나 라이브러리를 배포하기 위한 소프트웨어 패키지 파일 포맷임


- .jar 파일은 여러개의 파일들과 리소스들이 모여있는것이 .zip과 같은 맥락이지만, 
- .jar 파일은 압축을 따로 해제해주지 않아도  JDK에서 접근해서 사용할 수 있도록 지원하는 편리함  때문에 사용합니다.

- .jar 확장자 파일에는 Class와 같은 Java 리소스와 속성 파일,  라이브러리 및 액세서리 파일이 포함되어있음
쉽게 JAVA 어플리케이션이 동작할 수 있도록 자바 프로젝트를 압축한 파일로 생각하면됨

실제로 JAR 파일은 플랫폼에 귀속되는 점만 제외하면 WIN ZIP파일과 동일한 구조임

- JAR 파일은 원하는 구조로 구성이 가능하며 JDK(Java Development Kit)에 포함하고 있는 JRE(Java Runtime Environment)만 가지고도 실행이 가능

 




WAR

- Web application ARchive 뜻
- 소프트웨어 공학에서 자바 서버 페이지, JAVA Servlet, Java Class, XML, File, Tag Library, HTML 등등 
웹 애플리케이션이 구동되기 위한 기타 자원을 한 군데에 모아 배포하는 데 사용되는 파일임
배포 방식에서 .jar파일과 다른 점을 가지고 있다.
배포 서술자라고 불리는 web.xml 파일을 통해 path 설정을 따로 해주어야 WAS(웹 애플리케이션 서버)가 이것을 읽고 실행할 수 있음

 - WAR는 웹 응용 프로그램를 위한 포맷이기 때문에 웹 관련 자원만 포함하고 있으며 이를 사용하면 웹 어플리케이션을 쉽게 배포하고 테스트 할 수 있음
- 원하는 구성을 할 수 있는 JAR 포맷과 달리 WAR은 WEB-INF 및 META-INF 디렉토리로 사전 정의 된 구조를 사용하며 WAR파일을 실행하려면 Tomcat, Weblogic, Websphere 등의 웹 서버 (WEB)또는 웹 컨테이너(WAS)가 필요함

WAR 파일도 JAVA의 JAR 옵션( java - jar)을 이용해 생성하는 JAR파일의 일종으로 웹어플리케이션 전체를 패키징하기 위한 JAR파일로 생각하시면 될 것 같습니다.

 

 

 

 

 

 

 

 

 

참고블로그 : [Spring Boot] 배포 어떤걸로? JAR or WAR (tistory.com)

[Java] JAR WAR 차이점 및 특징 ( + EAR ) :: IfUwanna IT (tistory.com)

( JAVA ) JAR ? WAR ? 차이점 알아보자 (tistory.com)

728x90
LIST