WAR (Web Application Archive) 파일
- 용도: Java 기반 웹 애플리케이션 배포에 사용됨.
- 구성:
- 웹 애플리케이션의 구성 요소 (예: HTML, CSS, JavaScript 파일).
- Java 서블릿, JSP 파일, WEB-INF 디렉토리 (배포 설명자 파일 web.xml 포함).
- 배포 환경: 주로 웹 애플리케이션 서버(예: Tomcat, Jetty)에 배포.
- 특징:
- 웹 애플리케이션의 표준 포맷.
- JSP와 서블릿 같은 웹 관련 자원들을 실행할 수 있는 환경 제공.
JAR (Java Archive) 파일
- 용도: Java 애플리케이션 또는 라이브러리의 패키징에 사용됨.
- 구성:
- .class 파일(컴파일된 Java 코드).
- 관련 리소스 (예: 설정 파일, 이미지).
- META-INF 디렉토리 (MANIFEST.MF 파일 포함).
- 배포 환경:
- 일반 Java 실행 환경 (JRE)에서 실행 가능.
- Java 프로그램 또는 라이브러리 파일로 사용.
- 특징:
- 독립 실행형 애플리케이션을 포함하거나 다른 애플리케이션에서 참조 가능한 라이브러리 역할.
WAR vs JAR 주요 차이점
특징 | WAR | JAR |
용도 | 웹 애플리케이션 배포 | 일반 Java 애플리케이션 또는 라이브러리 |
포맷 표준 | Java EE 표준 | Java SE 표준 |
파일 구조 | 웹 관련 파일과 WEB-INF 포함 | Java 코드와 리소스만 포함 |
실행 환경 | 웹 서버에서 실행 | Java Runtime Environment (JRE) |
주요 목적 | 웹 앱을 위한 구성과 배포 | 코드 재사용과 실행 가능 파일 생성 |
화면을 JSP를 사용해 구성하고 외장 WAS를 사용한다면 WAR를 사용한다.
SpringBoot의 경우 JSP와 외장 WAS를 사용하지 않는 JAR를 사용한다.