Jar : Java Archive
War : Web Application Archive
Jar 와 War는
- 자바의 jar 툴을 이용하여 생성된 아카이브(압축)파일임
- 자바 애플리케이션을 쉽게 배포, 동작시킬수 있도록 관련 파일(바이트코드, 이미지, html 등)을 패키징 하는 방식을 말하기도 함

JAR (Java Archive)
- JRE에 종속적이라는 것만 빼면 윈도우의 .zip과 같은 맥락임
- JRE는 .jar 파일의 패키징을 풀지 않아도 사용할 수 있음
- 여러 개의 자바 클래스 파일과 관련 리소스 및 메타데이터를 패키징하여 배포, 동작을 편리하게 제공하는 패키지 파일 포맷
- Springboot의 guide는 JAR이다.
Jar와 maven을 활용한 스프링부트앱 배포 시연

오른쪽의 Maven Lifecycle 탭을 활용하거나
mvnw
를 활용하여 패키징을 할 수 있다.mvnw 란?
Maven Warpper의 약자이고 Maven의 설치없이 편리하게 이용할 수 있도록 도와준다.
mvnw를 직접활용하여 packaging을 하는 명령어는 아래와 같다.
- Maven/target Clean 및 build
./mvnw clean package

/target
에 Executable Jar File이 생성되었다.
WAR(Web Application Archive
- 자바 서버 페이지, Java Servlet, HTML 등등 웹 애플리케이션이 구동되기 위한 기타 자원을 한 군데에 모아 배포하는 데 사용되는 파일
- 사전 정의된 구조가 있음
- 별도의 웹서버 또는 WAS가 있어야 프로젝트 구동이 가능
- 외부 WAS나 JSP를 활용해야 하는 경우 WAR를 사용해야함
JAR , WAR 압축 구조

JAR가 가장 적은 압축 범위를 가지고 있다.
WAR는 JAR의 모든 파일 + WAR만의 파일을 더 압축한다.