선 조치 후 분석

JAR vs WAR , 개념과 차이점은? 본문

Language/Java

JAR vs WAR , 개념과 차이점은?

JB1104 2023. 8. 23. 11:21
728x90
반응형
SMALL

JAR(Java ARchive)와 WAR(Web ARchive)는 둘 다 Java 프로젝트를 패키징하고 배포하는 데 사용되는 파일형식이다.

그러나 각각의 파일 형식은 다른 종류의 애플리케이션을 위해 최적화되어 있으며, 특정한 용도에 따라 사용된다.


JAR (Java ARchive)

  • JAR 파일은 Java 클래스 파일, 리소스, 라이브러리 등을 하나의 아카이브로 패키징 하는 데 사용된다.
  • 주로 자바 라이브러리와 모듈을 패키징하여 배포하고 다른 프로젝트에서 재사용하는데 유용하다.
  • JAR 파일은 클래스와 리소스를 압축하고, 메타정보와 매니페스트 파일을 포함한다.
  • 실행가능한 JAR 파일은 메인 클래스를 가지고 있어 명령줄에서 실행할 수 있다.
  • JAR 파일은 Java 애플리케이션을 실행하는 데 주로 사용된다.
+ JAR에서는 JSP를 사용할 수 없다. SpringBoot는 JSP를 지양한다. 그래서 Sring Initializer에서도 Jar가 기본값이다.

WAR (Web ARchive)

  • WAR 파일은 웹 애플리케이션을 패키징하여 배포하는 데 사용된다.
  • 웹 애플리케이션은 HTML, JSP, 서블릿, 클래스, 라이브러리 등 여러 요소로 구성된다.
  • WAR 파일은 웹 애플리케이션의 구조를 유지하면서 압축된 형식으로 패키징 된다.
  • 주로 Java EE(Java Platform, Enterprise Edition)에서 제공되는 웹 애플리케이션을 배포하는 데 사용.
  • WAR 파일은 웹 애플리케이션 서버에서 실행되며, 해당 서버가 웹 애플리케이션을 호스팅 하고 관리한다.
+ 별도의 웹 서버 또는 WAS 가 필요하다.

차이점

  • JAR는 주로 라이브러리와 모듈을 패키징하고 재사용하기 위해 사용되며,
    WAR는 웹 애플리케이션을 패키징하고 배포하기 위해 사용
  • JAR 파일은 실행 가능한 클래스를 포함할 수 있지만,
    WAR 파일은 웹 컨테이너에서 실행되는 웹 애플리케이션을 포함한다.
  • JAR 파일은 메타정보를 포함할 수 있지만,
    WAR 파일은 웹 애플리케이션의 설정과 리소스를 포함하는 디렉터리 구조를 유지한다.
기본적으로 JAR, WAR 모두 Java의 -Jar 옵션을 이용해 생성된 압축(아카이브) 파일이다.

 

일반적으로, JAR는 라이브러리나 모듈을 공유하고 재사용하기 위해 사용되며,

WAR는 웹 애플리케이션을 배포하고 실행하기 위해 사용된다.

 

꼭 Jsp를 사용하지 않아도 되고, 외장 WAS를 이용할 계획이 있는 게 아니라면 War만 고집할 필요는 없고
상황에 맞게 JAR or WAR를 사용하면 될 거 같다.

JAR는 클라우드 환경에서 WAR는 웹 애플리케이션 전용 패키지에서 보통 사용한다.
728x90
반응형
LIST