ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Spring] War Jar 차이점
    Backend/Spring 2022. 3. 9. 17:34

    Spring을 사용하면서 Jar과 War에 대해서 많이 듣게 되면서 둘의 차이점과 개념에 대해 알고 싶어 포스팅해보려 합니다.

     

     

    JAR WAR의 용도

    Backend를 공부하시다 보면 JAR과 WAR을 많이 보셨을 겁니다. 하지만 저는 어떠한 용도로 사용되는지는 정확히 알지 못했습니다.

    그래서 정확한 용도는 다음과 같습니다.

    JAR, WAR 모두 Java의 jar 툴(java -jar 명령어)을 이용하여 생성된 압축(아카이브) 파일로, 애플리케이션을 쉽게 배포하고 동작시킬 수 있도록 관련 파일(리소스, 속성 파일)들을 패키징 해주는 것이 용도입니다.

    저는 주로 배포할 때 Jar파일을 Build 하여 배포한 경험이 있었습니다.

    최근에는 STS를 다운로드할 때 공식 사이트에서 Jar파일로 제공하여 jar 툴을 사용한 경험이 있습니다.

     

    JAR(Java Archive)

    .jar 확장자 파일에는 Class와 같은 Java 리소스와 속성 파일, 라이브러리 및 액세서리 파일이 포함되어 있습니다.

    Java 애플리케이션이 동작할 수 있게 자바 프로젝트를 압축한 파일로 생각하시면 편합니다. Zip 파일과 유사하다고 생각이 듭니다.

    jar의 파일의 경우 jar명령어를 이용하여 압축을 풀 수 있습니다.

     

    WAR(Web Archive)

    WAR의 경우 웹 애플리케이션을 지원하기 위한 압축 방식입니다. 

    WAR 파일의 경우 JSP, Servlet, Class, XML 등 Servlet Context 관련 파일들로 패키징 되어있습니다. 

    WAR는 웹 응용 프로그램을 위한 포맷이기 때문에 웹 관련 자원을 포함하고 있습니다.

    WAS가 동작을 하면 War에서 설정들을 불러오는 특징이 있습니다.

     

    원하는 구성을 할 수 있는 JAR 포맷과 달리 WAR은 WEB-INF 및 META-INF 디렉터리로사전 정의된 구조를 사용하며 WAR파일을 실행하려면 Tomcat, Weblogic, Websphere 등의 웹 서버 (WEB)또는 웹 컨테이너(WAS)가 필요합니다.

     

     

    차이점

    JAR의 경우는 JRE만 존재하면 쉽게 프로젝트 구동과 압축을 푸는 것이 가능하다.

    WAR의 경우는 웹서버 또는 WAS가 있어야 프로젝트 구동이 가능하다.

    WAR는 사전 정의된 구조를 사용한다는 점.

     

Designed by Tistory.