ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • WAR, JAR 이란?
    프로그래밍 기초 공부 2022. 11. 17. 00:23

     

    JAR, WAR 모두 Java의 jar 옵션 (java -jar)을 이용해 생성된 아카이브 파일로, 애플리케이션을 쉽게 배포하고 동작시킬 수 있도록 관련 리소스, 속성 파일 등을 패키징 한 것

     

    [ JAR ]

    • Java ARchived의 약자
    • JAVA 어플리케이션이 동작할 수 있도록 자바 프로젝트를 압축한 파일
    • Class (JAVA리소스, 속성 파일), 메타데이터, 라이브러리 파일을 하나의 파일로 모아서 자바 플랫폼 응용 소프트웨어 라이브러리를 배포하기 위한 소프트웨어 패키지 파일 포맷
    • JRE만 있어도 실행 가능함
    • JAR 파일은 실제로 ZIP 파일 포맷으로 이루어진 압축 파일
      • 파일 확장자는 .jar
      •  컴퓨터 사용자들은 JDK에 포함된 jar 명령어를 이용하여 JAR 파일을 만들거나 압축을 풀 수 있음

     

     

    [ Jar파일 ]

    • jar파일은 archive파일
    • 즉 여러개의 파일을 하나의 파일로 묶는jar명령을 사용하여 생성
    • 이 파일은 winzip에서 열어 볼 수 있으며, winzip에서열어보면 여러개의 파일들이 디렉토리 정보를 가진채 들어 있음

     

     

    [ Zip 파일과 차이점 ]

    • winzip과 다른점은 압축되어 있을수도 있고,하나로묶어놓은 파일일수도 있음
    • 그래서 jar 파일을 archive파일이라 볼수 있음
    • archive파일로 묶는 이유는 자바로 개발한 여러클래스 파일들 또는 패키지 파일이있을때, 이를 하나로 묶어두면, 그 클래스들을 참조하기도 편하고, 다운 받기도 쉬움

     

     

    [ WAR ]

    • Web ARchive의 약자
    • Servlet / Jsp 컨테이너에 배치할 수 있는 웹 애플리케이션(Web Application) 압축파일 포맷
    • 웹 관련 자원을 포함함 (JSP, Servlet, JAR, Class, XML, HTML, Javascript)
    • 사전 정의된 구조를 사용함 (WEB-INF, META-INF)
    • 별도의 웹서버 or 웹 컨테이너 필요
    • 즉, JAR파일의 일종으로 웹 애플리케이션 전체를 패키징 하기 위한 JAR 파일

     

     

    [ 스프링부트에서의 JAR, WAR ]

    • 스프링부트 프로젝트를 새로 생성할 때, jar 또는 war 로 패키징 방식을 선택할 수 있음
    • 두 방식 모두 WAS 컨테이너 위에서 동작하게 되는데, 이는 JAR파일에 WAS가 내장되어 있기 때문
    • 기존 톰켓과 같은 컨테이너를 이용해야 했던 스프링보다 훨씬 간단하게 어플리케이션을 제작/배포할 수 있음
    • 필요에 따라 외부 WAS를 이용해야할 경우도 생기는데,  이때는 WAR 파일로 패키징을 함

     

     

Designed by Tistory.