상세 컨텐츠

본문 제목

[배포] JAR와 WAR

CS/CS

by Chan.94 2022. 7. 11. 08:05

본문

반응형

개발을 하다 보면 두 파일 형식은 많이 보았을 것이다. Maven 등을 통해 내려받는 라이브러리들은 Class 파일들이 묶인 jar파일이었을 것이며 서비스 배포 시에는 프로젝트를 war포맷으로 묶어서 지정된 경로에 넣고 Tomcat 등의 웹 컨테이너(Web Contaioner)를 이용하여  deploy 하는 식으로 서비스를 많이 올렸을 것이다.

 

JAR (Java Archive) WAR (Web Application Archive) 모두 압축(아카이브) 파일이며 어플리케이션을 쉽게 배포하고 동작시킬 수 있도록 있도록 관련 파일(리소스, 속성 파일 등)들을 패키징 해주는 것이 주 역할이다.


JAR (Java Archive)

  • JAVA 어플리케이션이 동작할 수 있도록 자바 프로젝트를 압축한 파일
  • Class 및 설정 파일들을 압축해서 만들어진 하나의 어플리케이션 혹은 라이브러리
  • JRE(Java Runtime Environment), JDK(Java Development Kit) 환경에서 사용 가능
    * JDK는 JRE를 포함하고 있다.

 

우리가 Maven을 통해 내려받은 파일들이 jar로 묶여있었던 이유는 JDK에서 접근할 수 있기 때문이었다.

 

WAR (Web Application Archive)

  • JSP나 Servlet 등 WAS 컨테이너 위에서 동작하게끔 빌드된 형태
  • 웹 관련 자원을 포함함 (JSP, Servlet, JAR, Class, XML, HTML, Javascript)
  • 사전 정의된 구조를 사용함 (WEB-INF, META-INF)
    대표적인 파일이 웹 어플리케이션을 어떻게 설정할 지에 대한 정의가 있는 web.xml이다.
    WAS가 동작을 하면 이 파일에서 설정들을 불러온다.
    * web.xml은 배포 서술자라고 불린다.
  • 별도의 Web Server 또는 Web Application Server가 있어야 프로젝트 구동이 가능

 

EAR (Enterprise Archive)

JAVA EE(Enterprise Edition) 쓰이는 파일 형식으로 한 개 이상의 모듈을 단일 아카이브로 패키징 하여 어플리케이션 서버에  동시에 일관적으로 올리기 위하여 사용되는 포맷이다.

 


결론

jar, war는 둘 다 자바 클래스 패키징 확장자를 말하며, 프로젝트를 압축해서 배포할 때 사용된다.
웹이 들어가 있는 프로젝트인가, 자바 파일만 들어가 있는가 에 따라 달라진다고 표현할 수 있다.

반응형

관련글 더보기

댓글 영역

>