프로젝트를 배포하려고 했을 때. jar와. war를 한 번쯤은 보았을 것이다. 자신이 만든 프로젝트를 배포하려고 할 때 어떠한 형태의 파일로 빌드하고 압축해야 하는지, 두 가지의 압축 파일이 어떤 차이가 있는지 알아보는 시간을 가져보자.
JAR (Java Archive, 자바 아카이브)
● 자바 플랫폼에 응용 소프트웨어나 라이브러리를 배포하기 위한 소프트웨어 패키지 파일 포맷이다.
● Class (Java 리소스, 속성 파일), 라이브러리 파일을 포함한다.
● JRE(JAVA Runtime Environment)만 있어도 실행이 가능하다 ※ (java -jar 실행하고자 하는 프로젝트 이름.jar)
WAR (WEB Application Archive, 웹 어플리케이션 아카이브)
● JAR 파일의 일종으로 웹 어플리케이션 전체를 패키징 하기 위한 JAR 파일이다.
● 웹 관련 자원(JSP, Servlet, JAR, Class, XML, HTML, Javascript)을 포함한다.
● WEB-INF 및 META-INF로 사전 정의된 구조를 사용한다.
● 별도의 웹서버 또는 WAS(웹 컨테이너)가 있어야 프로젝트 실행이 가능하다.
다음은 JAR와 WAR를 인텔리제이 기준으로 생성하는 과정이다.
JAR 생성
1. 프로젝트의 File > Project Structure 설정창을 오픈한다.
2. Project Settings > Artidacts를 선택한다
3. ADD 버튼을 눌러 JAR > From modules with dependencies... 를 선택한다.
4. Jar 파일을 생성할 모듈을 선택하고 해당 모듈의 Main Class를 선택한다.
5. 파일이 출력될 경로와 Layout을 확인하고 Artifacts 설정을 마친다.
6. Build > Build Artifacts를 선택한 뒤 설정한 JAR의 Artifacts > Build를 선택한다.
7. 출력될 경로 폴더에 .jar 파일이 정상적으로 생성이 된다.
WAR 생성
1. 프로젝트의 File > Project Structure 설정창을 오픈한다.
2. Project Settings > Artidacts를 선택한다
3. ADD 버튼을 눌러 Web Application : archive를 선택한다.
5. 파일이 출력될 경로와 Layout을 확인하고 Artifacts 설정을 마친다.
6. Build > Build Artifacts를 선택한 뒤 설정한 WAR의 Artifacts > Build를 선택한다.
7. 출력될 경로 폴더에 .war 파일이 정상적으로 생성이 된다.
JAR와 WAR 파일은 프로젝트 리소스를 패키징 하는 방법에 차이가 있다. 따라서 어떤 포맷을 사용해야 하는지는 개발자의 판단에 따라서 선택해야 한다.
JSP 나 Servlet , 외장 WAS 등을 사용해야 한다면 WAR를 사용해야 할 것이지만 어떤 포맷을 사용하는지에 대한 완벽한 해답은 없는듯하다.
가이드하는 표준이 존재한다면 표준을 따르는 것이 좋은 선택이라고 본다 (Spring Boot에서는 JAR을 표준으로 한다.)
참고
[springboot] Referer 헤더와 사용법 (현재페이지 이전에 방문한 사이트 url 확인하기) (0) | 2023.06.19 |
---|---|
[Vue3] Vue 컴포넌트의 생명주기 훅 (0) | 2023.06.09 |
package.json과 NPM: Node.js개발자를 위한 핵심 가이드 (0) | 2023.05.19 |
[FIGMA] 가장 중요한 기능! 컴포넌트(Component) 만들기 (0) | 2023.05.10 |
💡 URI, URL 이란? (0) | 2023.05.04 |