( JAVA ) JAR ? WAR ? 차이점 알아보자

ZZOOO

·

2021. 8. 9. 15:50

안녕하세요 ZZOOO입니다.

 

오늘은 JAR와 WAR의 개념과 차이점을 간단하게 포스팅해보도록 하겠습니다.

( + 포스팅을 함으로서 제 자신 머릿속에 한번 더 저장하려는 의미 )

 


그걸 왜 사용해  ?

 

들어가기에 앞서 .jar나 .war 확장자를 가진 파일을 왜 사용하는지부터 간단하게 말씀을 드리겠습니다.

 

.jar와 .war 모두 아카이브(압축) 파일로, 애플리케이션을 간단히 배포하고 어느 환경에서나 구동시킬 수 있도록

소스들이나 관련 파일들을 하나로 패키징 한 것입니다.

 


JAR ?

 

jar의 의미는 무엇일까요? 

 

막연히 구글에 jar의 뜻이라고 검색하면 " 항아리 " 라고 나오는 것을 볼 수 있습니다.

하지만 이 의미를 알고 싶은 건 아니겠죠 ㅎㅎ

 

JAR는 Java Archive 라는 의미입니다.

 

여러 개의 자바 클래스 파일과 클래스에서 필요로 하는 관련 리소스들 및 메타데이터들을 하나의 파일로 모아서

자바 플랫폼에 응용 소프트웨어나 라이브러리를 배포하기 위한 소프트웨어 패키지 파일 포맷입니다.

 

무슨 말인지 잘 와닿지 않고 왜 사용하냐고 물어볼 수 있습니다.

 

.jar 파일은 여러개의 파일들과 리소스들이 모여있는것이 .zip과 같은 맥락이지만, 

.jar 파일은 압축을 따로 해제해주지 않아도 JDK에서 접근해서 사용할 수 있도록

지원하는 편리함 때문에 사용합니다.

 


WAR ? 

 

그렇다면 war는 무엇일까요?

 

WAR는 Web application ARchive 라는 뜻입니다.

 

소프트웨어 공학에서 자바 서버 페이지, JAVA Servlet, Java Class, XML, File, Tag Library, HTML 등등 

웹 애플리케이션이 구동되기 위한 타 자원을 한 군데에 모아 배포하는 데 사용되는 파일입니다.

 

배포 방식에서 .jar파일과 다른 점을 가지고 있다.

 

배포 서술자라고 불리는 web.xml 파일을 통해 path 설정을 따로 해주어야 WAS(웹 애플리케이션 서버)가 

이것을 읽고 실행할 수 있다.


JAR vs WAR 

 

- JARJRE( Java Runtime Environment ) 만 존재하면 프로젝트 구동이 가능하다.

- WAR는 별도의 웹서버 또는 WAS ( 웹 컨테이너 )가 있어야 프로젝트 구동이 가능하다.

 


결론

 

사실 본인도 JAR와 WAR의 차이점을 구분하여 간단하게 풀어보려고 했으나, 쉽진 않습니다.

 

JAR와 WAR의 차이는 리소스들을 하나의 파일로 패키징 하는 과정에 차이가 있다고 생각하고

둘 중 뭐가 더 좋다고 말하기는 어렵다고 생각합니다.

 

하지만, 본인이 외부 WAS를 이용하여 구동해야 한다고 가정한다면 WAR를 사용해야 한다.

- springboot에서의 guide는 JAR라고 합니다.

 

이렇게 정리를 한다고 했지만, 도움이 되셨을지는 모르겠습니다. 

 

읽어주셔서 감사하고 더 좋은 글로 돌아오겠습니다.

 

반응형