JAR Vs WAR

Weed·2024년 4월 14일
0

Spring boot

목록 보기
2/5

참고: 밸로그

JAR?? WAR??

Spring boot 프로젝트를 생성하다보면 하단에 Packaging으로 JAR, WAR을 택하라고 나온다. 이 JAR하고 WAR의 차이점은 무엇일까?
우선 이 두 옵션은 Java의 jar 옵션을 이용해 생성된 압축(아카이브) 파일이다.

Java -jar

이는 애플리케이션을 쉽게 배포하고 동작시킬 수 있도e록 관련 파일(리소스, 속성 파일 등)을 패키징한 것이다.

1️⃣ JAR (Java Archive)

  • Java 에플리케이션이 동작할 수 있도록 자바 프로젝트를 압축한 파일
  • Class(Java 리소스, 속성 파일), 라이브러리 파일 포함
  • JRE(Java Runtime Environment)만 있어도 실행 가능
java -jar Project_name.jar

장점

  1. 독립적인 Java 애플리케이션을 패키징할 수 있고, 실행 가능한 JAR 파일로 만들어서 개발자가 쉽게 애플리케이션을 실행할 수 있다.
  2. 압축된 형식으로 클래스, 리소스, 라이브러리 등을 포함하므로 배포와 전달이 용이하다.
  3. Java 애플리케이션의 진입점인 main 메서드를 포함하고 있어 JVM에서 직접 실행하기 때문에 별도의 웹 컨테이너나 서버가 필요하지 않다.

단점

  1. 웹 애플리케이션을 개발할 때는 WAR 파일에 비해 제약사항이 있다. 예를 들어, JSP나 서블릿 컨테이너에 대한 표준 기능을 활용하기 어렵다.
  2. 웹 애플리케이션에서 동적인 웹 컨텐츠 생성 및 관리가 제한적이다.

2️⃣ WAR (Web Application Archive)

  • Servlet / JSP 컨테이너에 배치할 수 있는 웹 에플리케이션 압축파일 포멧
  • 웹 관련 자원을 포함 (JSP, Servlet, JAR, Class, XML, HTML, JavaScript)
  • 사전 정의된 구조 사용 (WEB-INF, META-INF)
  • 별도의 웹서버(Web) or 웹 컨테이너(WAS) 필요
  • 즉, JAR파일의 일종으로 웹 에플리케이션 전체를 패키징하기 위한 JAR 파일

장점

  1. Java 웹 애플리케이션을 패키징하는 데 최적화되어 있고, 웹 구성 요소인 JSP, 서블릿, 필터, 리스너 등과 웹 애플리케이션을 실행하기 위한 서블릿 컨테이너(웹 컨테이너)에서 필요한 설정 파일, 라이브러리, 리소스 등을 포함하여 한 번에 배포 및 실행할 수 있습니다.
  2. 웹 컨테이너(서블릿 컨테이너)를 통해 애플리케이션을 실행하므로 다양한 웹 기능과 서버 환경을 활용할 수 있다.

단점

  1. 웹 컨테이너나 서버에 종속적이기 때문에 특정한 웹 컨테이너 환경이 필요하다.
  2. 배포 및 전달에 있어서 JAR 파일에 비해 크기가 크고 번거로울 수 있다.

profile
개발자로 전직해보자

0개의 댓글