WAR, JAR 배포

KimSeonGyu·2023년 7월 21일
0

SpringFramework(공부)

목록 보기
5/7
post-thumbnail

Jar & War

스프링부트 프로젝트를 생성할때 우리는 Packaging 에 Jar 또는 War 둘 중 한가지를 선택하게 된다. 이때 선택에 따라 배포 방식이 Jar배포와 War 배포로 나뉘게 되는 것이다.

Jar (Java Archive)

자바 클래스 파일, 클래스들이 이용하는 관련된 리소스 와 메타데이터를 하나의 파일로 모아서 자바 플랫폼에 응용 소프트웨어나 라이브러리를 배포하기위한 소프트웨어 패키지 파일 포맷이다.
Jar 파일은 압축파일이며 확장자명은 .jar 이다.

스프링부트 프로젝트는 기본적으로 내장 톰캣이 내장되어 있다.
JAR 파일은 원하는 구조로 구성이 가능하며 JDK(Java Development Kit)에 포함하고 있는 JRE(Java Runtime Environment)만 가지고도 실행이 가능하다.

Jar 파일의 경우 독립 실행형 애플리케이션을 배포하는 데 주로 사용된다. 독립 실행형 애플리케이션은 보통 웹 애플리케이션이 아니며, 서버와의 연동이나 데이터베이스와의 상호작용이 필요하지 않은 경우에 사용된다. 예시로, 콘솔 기반의 배치 작업, 데스크톱 애플리케이션 등이 해당됩니다.

독립 실행형 애플리케이션은 대개 필요한 라이브러리를 Jar 파일에 내장하여 배포한다. 이렇게 하면 사용자가 Java 애플리케이션을 실행하기 위해 추가적인 설정이나 라이브러리 다운로드가 필요 없어지게 된다.

War (Web Application Archive)

WAR 도 마찬가지로 자바로 만든 어플리케이션 구성요소들을 압축시킨 파일이다. Jar 파일은 원하는 구성을 할 수있는 반면 War 파일에 경우에는 웹 응용 프로그램를 위한 포맷이기 때문에 웹 관련 자원만 포함하고 있으며 이를 사용하면 웹 어플리케이션을 쉽게 배포하고 테스트 할 수 있습니다.

웹 애플리케이션은 주로 웹 브라우저를 통해 사용자와 상호작용하며, 서버 측에서 데이터 처리 및 비즈니스 로직을 수행합니다. 웹 애플리케이션은 서블릿 컨테이너(웹 애플리케이션 서버) 내에서 실행되므로 War 파일 형식으로 배포하는 것이 효율적입니다.

War파일은 웹 애필리케이션을 배포하는데 사용된다. 웹 애플리케이션은 사용자의 요청을 처리하고 데이터베이스에서 데이터를 읽어오거나 쓰는 등의 작업을 수행한다. 이러한 상호작용이 필요한 경우 War 파일로 애플리케이션을 배포하고, 서블릿 컨테이너(웹 애플리케이션 서버)에서 실행하여 웹 애플리케이션과 데이터베이스 사이의 상호작용을 가능하게 한다.

웹 애플리케이션은 여러 개의 라이브러리나 프레임워크에 의존할 수 있다. 서블릿 컨테이너는 이러한 의존성을 관리하고, War 파일에 라이브러리를 포함시켜 배포할 수 있다.

profile
공부한 내용을 작성하는 블로그 입니다. 수정할 부분이 있다면 편하게 댓글 작성부탁드립니다!

0개의 댓글