플랫폼/스프링 프레임 워크

[스프링 부트] war / jar 차이 (java)

삐뚤어진 개발자 2020. 3. 25.

스프링 부트 개발을 하다 보면, 배포관리를 해야할 일이 생긴다. (서비스를 시작할 때, 테스트를 해볼 때..등등)

 

그럴때 많이 등장하는 이름인 WAR 파일, JAR 파일을 알아보고 차이를 알아본다.

 

1. JAR 이란?

 

- JAR (Java Archive) WAR (Web Application Archive) 모두 JAVA의 jar 툴을 이용하여 생성된 압축(아카이브) 파일이며 어플리케이션을 쉽게 배포하고 동작시킬 수 있도록 있도록 관련 파일(리소스, 속성파일 등)들을 패키징해주는 것이 주 역할

 

- JAR는 여러개의 자바 클래스 파일과, 클래스들이 이용하는 관련 리소스 및 메타데이터를 하나의 파일로 모아서 자바 플랫폼에 응용 소프트웨어나 라이브러리를 배포하기 위한 소프트웨어 패키지 파일 포맷이다.

 

2. WAR ( Web Application Archive )


war 확장자 파일은  servlet / jsp 컨테이너에 배치 할 수 있는 웹 어플리케이션(Web Application) 압축 파일 포맷이다.  JSP,  SERVLET, JAR, CLASS, XML, HTML, JAVASCRIPT 등  Servlet Context 관련 파일들로 패키징 되어있다. WAR는 웹 응용 프로그램를 위한 포맷이기 때문에 웹 관련 자원만 포함하고 있으며 이를 사용하면 웹 어플리케이션을 쉽게 배포하고 테스트 할 수 있다.


원하는 구성을 할 수 있는 JAR 포맷과 달리 WAR은 WEB-INF 및 META-INF 디렉토리로 사전 정의 된 구조를 사용하며 WAR파일을 실행하려면 Tomcat, Weblogic, Websphere 등의 웹 서버 (WEB)또는 웹 컨테이너(WAS)가 필요하다.
WAR 파일도 JAVA의 JAR 옵션( java - jar)을 이용해 생성하는 JAR파일의 일종으로 웹어플리케이션 전체를 패키징하기 위한 JAR파일로 생각하시면 될 것 같다.

 

 

결론 : 

- jar, war 파일 둘다 자바 클래스 패키징 확장자이다. 

프로젝트를 압축하여서 배포를 쉽게할 때 주로 쓰인다. 

 

- war는 웹 어플리케이션  전용 패키징이고, 웹 서버가 내장되어 있어 웹 사이트 배포에 좀더 특화 되어 있다.

 

 

참조 : https://ifuwanna.tistory.com/224

댓글