[Spring] WAR과 JAR

2024. 10. 25. 10:24·Spring

WAR과 JAR 모두 자바의 java-jar 을 통해 생성된 아카이브 파일로 Application을 쉽게 배포하고 동작시킬 수 있게 패키징된 파일이라고 볼 수 있다.

 

1. JAR(Java Archive)

.jar의 확장자를 가지며, 자바 프로그램의 실행에 필요한 Class와 리소스 파일, 메타 데이터, 설정 파일 등이 .zip으로 압축되는 아카이브 파일이다. 

플랫폼에 귀속된다는 점을 제외하면 .zip과 동일한 구조이고 Maven이나 Gradle을 통해 받는 라이브러리들은 Class파일이 묶인 .jar 파일로 구성된 것을 확인할 수 있다. 

원하는 구조로 구성할 수 있고 JDK에 포함된 JRE만 있어도 실행은 가능하다.

 

장점

1. 독립적인 자바 Application을 패키징할 수 있고 실행 가능한 JAR 파일로 만들어서 쉽게 실행이 가능하다.

2. 압축된 형식으로 클래스, 리소스, 라이브러리 등을 포함한다.

3. 자바 Application의 main 메소드를 포함하여 별도의 WAS가 필요하지 않다.

 

단점

1. 웹 애플리케이션을 개발할 때 WAR파일에 비해 제약사항이 있다.

(ex. JSP 또는 Servlet에 대한 표준 기능 활용 어려움)

2. 동적 웹 컨텐츠 생성과 관리가 제한된다.

 

실행 명령어

java -jar 프로젝트명.jar

 

 

2. WAR(Web Application Archive)

.war의 확장자를 가지며, 자바의 Web Application으로 이용되는 클래스, 설정파일, JSP 또는 HTML 등이 압축된 아카이브 파일이다. 

JSP나 Servlet 등 WAS 컨테이너 위에서 동작하게 빌드된 Web Application 압축 파일이다.

웹 응용 프로그램을 위한 포맷이기 때문에 웹 관련 자원만을 포함하고 Web Application을 쉽게 배포할 수 있다.

JAR파일의 일종으로 Web Application 전체를 패키징하기 위함이다.

별도의 WAS가 필요하다.

 

Web Application 설정에 대한 정의인 web.xml이 포함되어 배포할 경우 web.xml파일에서 설정을 불러와 배포하는 형태이다.

WEB-INF와 META-INF 디렉토리로 정의된 구조를 고정적으로 사용해야 한다.

 

장점

1. 자바 Web Application을 패키징하는데 최적화되어 있다.

2. 웹 구성 요소를 실행하기 위한 Servlet 컨테이너에서 필요한 설정 파일, 라이브러리, 리소스 등을 포함하여 한 번에 배포와 실행이 가능해 진다.

3. 다양한 WAS에 적용이 가능하다.

 

단점

1. 별도의 WAS가 필요하다.

2. 배포에 있어서 JAR에 비해 크기가 크고 번거로운 작업이 필요할 수 있다.

 

 

 

 

3. JAR과 WAR의 사용 목적

JAR은 독립적인 실행 가능한 Application을 구성하는 것으로 독립적인 자바 Application을 패키징할 때 적합하다.

WAR은 웹 한경에서 실행되는 Application을 구성하는 것으로 웹 Application을 패키징하기에 적합하다.

 

 

 

저작자표시 (새창열림)

'Spring' 카테고리의 다른 글

[Spring] Scheduled 어노테이션  (0) 2024.10.30
[Spring] AES 암호화 알고리즘  (0) 2024.10.28
[Spring] Spring에서 redis 서버 사용  (3) 2024.09.30
[Spring Boot] 외장 톰캣 웹 배포하기(apache-tomcat)  (0) 2024.09.25
[Spring] web.xml 한글 필터  (0) 2024.05.20
'Spring' 카테고리의 다른 글
  • [Spring] Scheduled 어노테이션
  • [Spring] AES 암호화 알고리즘
  • [Spring] Spring에서 redis 서버 사용
  • [Spring Boot] 외장 톰캣 웹 배포하기(apache-tomcat)
whkim98
whkim98
꾸준히 내 것으로 만드는 게시글을 작성하자
  • whkim98
    내 일기장
    whkim98
  • 전체
    오늘
    어제
    • 분류 전체보기
      • JAVA
      • JavaScript
        • Node
        • React
      • PYTHON
      • GitHub
      • DJANGO
      • Project
        • Insty
        • ERP
      • Cloud
        • NAVER CLOUD Web DevOps
        • Public
      • 자격증
        • SQLD
        • 정보처리기사
        • ADsP
        • 리눅스마스터
        • AWS
      • 코딩테스트
        • 프로그래머스 Lv0
        • 프로그래머스 Lv1
      • Spring
      • Tools
        • Postman
        • eGov
      • WEB
      • CS
  • 블로그 메뉴

    • 홈
    • GitHub
    • 방명록
  • 링크

    • GitHub
  • 공지사항

  • 인기 글

  • 태그

    해시 암호화
    코딩테스트
    jsp
    RDBMS
    Postman
    Tomcat
    정보처리기사
    Python
    spring
    AdSP
    html
    eGov
    Java
    Cloud
    web
    django
    brycpt
    코딩
    git
    SQLD
    node
    annotation
    CORS
    프로그래머스
    js
    코테
    gitbash
    React
    javascript
    github
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
whkim98
[Spring] WAR과 JAR
상단으로

티스토리툴바