본문 바로가기
Programming Language 이해하기/Java 이해하기

Java에서 Jar 와 War 와 의 차이는 무엇일까?

by simplify-len 2020. 8. 24.

1. 들어가기

스프링 이니셜라이저를 통해 생성하기 위한 선택사항으로 중간에 package 에 Jar, War 가 있다.

여기서 Jar 와 War의 차이를 이해해보려 한다.

2. Jar? War? Jar(Java Archive) / War(Web Application Archive)

위키의 내용을 참고하면

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

...

JAR 파일은 자바 런타임이 효율적으로 애플리케이션을 배치(디플로이)할 수 있는 수단으로 설계되었다. 자바 애플리케이션을 구성하는 클래스와 관련 리소드들을 단일 파일로 묶어 압축된 형태인 JAR 파일은, 한 차례의 요청으로 애플리케이션 전체를 다운로드할 수 있게 해준다.

JAR 파일은 META-INF/MANIFEST.MF경로에 위치한 매니페스트 파일을 선택적으로 포함할 수 있다. 매니페스트 파일 안에는, 어떻게 JAR 파일을 이용할지를 기술한 엔트리 정보가 적혀있다. 이를테면 클래스패스(자바) 엔트리를 사용하면 해당 JAR 파일과 함께 로드할 다른 JAR 파일들을 지정할 수 있다. java.util.zip 패키지는 JAR 파일을 읽고 쓰는 클래스들을 포함하고 있다.

쉽게 이야기해서, 자바의 컴파일 후 배포가능한 형태의 파일 모음인것같은데, 좀 더 깊숙히 살펴봅시다.

위 위키에서 나오는 글처럼, MANIFEST.MF에 어떤 내용이 있는 살펴봅시다.

Jar 파일의 정보을 알려줍니다.

War 는 뭘까?

WAR(Web application ARchive[1], 웹 애플리케이션 아카이브) 파일은 소프트웨어 공학에서 자바서버 페이지, 자바 서블릿, 자바 클래스, XML, 파일, 태그 라이브러리, 정적 웹 페이지 (HTML 관련 파일) 및 웹 애플리케이션을 함께 이루는 기타 자원을 한데 모아 배포하는데 사용되는 JAR 파일이다.

 

JAR (파일 포맷) - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. JAR(Java Archive, 자바 아카이브)는 여러개의 자바 클래스 파일과, 클래스들이 이용하는 관련 리소스(텍스트, 그림 등) 및 메타데이터를 하나의 파일로 모아서 자바

ko.wikipedia.org

 

즉, 정리해서 이야기하면, 말 그대로 웹 어플리케이션 저장소이며 웹 어플리케이션을 압축해 저장해놓은 파일이라고 생각하면 된다.

다시 이야기하면, 웹이 들어가있는 프로젝트인가, 자바 파일만 들어가 있는가 에 따라 달라진다고 표현할 수 있다.

댓글