아래는 플로우차트임
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)
'백엔드' 카테고리의 다른 글
스키마/ 테이블/ 컬럼 네이밍 규칙 (0) | 2023.03.21 |
---|---|
[Spring Framework] 스프링 기본동작 순서 및 구조, 구성요소 (0) | 2023.03.03 |
[mysql] boolean과 tinyInt의 차이점 / varchar, char, text 차이점 (0) | 2023.03.02 |
[Java] JAVA 1~17버전특징 (1) | 2023.02.24 |
JSON.stringify( ) 개념 (0) | 2023.01.20 |