Java - Packaging - Jar와 War의 개념과 차이, 스프링 부트에서의 Jar와 War

반응형

 

패키징이란? (Pakaging)

  • 배포 및 배포를 위한 자바 응용 프로그램, 라이브러리 및 리소스의 배포 가능한 패키지를 만드는 프로세스
  • 애플리케이션을 실행하는데 필요한 모든 파일과 리소스를 포함하는 구조화된 아카이브를 만드는 것 포함
  • 자바에서 가장 일반적인 유형의 패키징은 JAR와 WAR 존재
    • JAR : 자바 라이브러리와 독립형 응용 프로그램 패키징
    • WAR : 자바 기술로 빌드된 웹 응용 프로그램 패키징

Jar (Java Archive)

  • 자바 라이브러리와 애플리케이션을 패키지화하고 배포하는데 사용
  • 컴파일된 자바 클래스와 라이브러리, 메타데이터 및 이미지, 사운드, 텍스트 파일과 같은 리소스
  • 독립형 자바 응용 프로그램뿐만 아니라 다른 자바 프로그램에서 사용할 수 있는 라이브러리 파일에도 사용

War (Web Archive)

  • 서블릿, 자바 서버 페이지(JSP), 자바빈스와 같은 자바 기술을 사용하여 구축된 웹 애플리케이션을 패키징하고 배포하는데 사용
  • 컴파일된 자바 클래스와 라이브러리, HTML, JSP 및 기타 웹 관련 파일 포함하여 웹 응용 프로그램을 배포하는데 필요한 모든 리소스
  • 아파치 톰캣(Apache Tomcat)이나 제이보스(Jboss), 제티(Jetty)와 같은 웹 서버에 사용

Jar VS War

  Jar War
패키징 자바 라이브러리, 애플리케이션 자바로 구축된 웹 애플리케이션 패키징
(서블릿, JSP, 자바빈스)
구성 자바 클래스, 라이브러리, 메타데이터 및 이미지, 사운드, 텍스트 파일 같은 리소스 자바 클래스, 라이브러리, HTML, JSP 및 기타 웹 관련 배포에 필요한 모든 리소스
사용 독립형 자바 응용 프로그램,
자바 프로그램에서 사용할 수 있는 라이브러리 파일
웹 서버에 사용

스프링 부트에서의 Jar VS War

  Jar War
설계 독립형 자바 응용 프로그램이 실행되도록 설계 자바 웹 서버에 배포하도록 설계
구성 응용 프로그램을 실행하는데 필요한 모든 종속성을 포함,
내장된 웹 서버 포함
응용 프로그램 코드와 리소스가 포함,
웹 서버는 포함되지 않음
패키징 Thymeleaf 템플릿 HTML, Servlet, JSP
웹 서버 (WAS) 내장 WAS (스프링 부트 자체 서버 사용) 외장 WAS (아파치 톰캣 등 사용)
쓰임새 별도의 웹 서버나 다른 소프트웨어 없이도 자바가 설치된 모든 시스템에서 실행 웹 서버 기능을 제공하는 톰캣과 같은 자바 웹 서버에 배포

 

반응형