728x90
스프링 부트를 사용할 때, JAR와 WAR 중 어떤 형식을 선택할지는 애플리케이션의 배포 방식에 따라 다르다.
JAR (Java Archive)
주로 스프링 부트 애플리케이션을 독립 실행형으로 실행할 때 사용한다.
JAR 파일은 내장된 웹 서버(예: Tomcat, Jetty)를 포함하고 있어, 추가적인 설정 없이 실행할 수 있다.
장점
- 간단한 배포: 모든 종속성과 함께 패키징 되어 있어, 서버에 배포하기가 용이하다.
- 자체 실행 가능: java -jar yourapp.jar 명령어로 실행 가능하며, 클라우드 환경에서도 쉽게 사용할 수 있다.
특징
- JAR 파일은 Java 런타임 환경에서 직접 실행할 수 있어, 별도의 서버 설정 없이도 애플리케이션을 시작할 수 있다.
- 모든 종속성 포함: 필요한 모든 라이브러리와 파일이 패키징 되어 있어, 배포 시 복잡한 의존성 문제를 줄일 수 있다.
WAR (Web Application Archive)
웹 애플리케이션을 서버에 배포해 기존 서버의 환경에서 실행될 수 있게 패키징 된 파일이다.
전통적인 Java EE 서버(WildFly, Tomcat 등)에 배포할 필요가 있을 때 사용한다. 기존의 기업 환경에서 많이 사용된다.
장점
- 표준 웹 애플리케이션 포맷: 기존의 Java EE 환경에서 호환성이 좋다.
- 더 큰 애플리케이션: 여러 모듈을 포함하고 있는 대규모 애플리케이션에 적합하다.
특징
- 서버 의존: WAR 파일은 자체적으로 실행되지 않으며, Tomcat 같은 서블릿 컨테이너 또는 애플리케이션 서버가 필요하다.
- 배포 환경: WAR 파일은 서버에 여러 애플리케이션을 함께 배포하거나, 인프라가 이미 존재하는 경우 사용된다.
- 서블릿 기반 웹 애플리케이션을 배포하는 데 많이 쓰인다.
※ 요약
JAR : 독립 실행형 애플리케이션을 개발하고 배포할 때 적합
WAR : 기존 서버 인프라에 애플리케이션을 통합하여 관리할 때 적합
* 인프라(Infrastructure)
시스템이나 애플리케이션이 원활하게 작동하기 위해 필요한 하드웨어, 소프트웨어, 네트워크, 서버 등의 기본 자원을 의미한다.
애플리케이션을 실행하고 운영할 수 있는 기반 환경으로, 데이터베이스 서버, 웹 서버, 네트워크 장비, 스토리지, 운영 체제 등이 포함된다.
728x90
'프로그래밍 기본 개념' 카테고리의 다른 글
OOP 개념 (0) | 2024.08.26 |
---|---|
아규먼트(argument) 와 파라미터(parameter) 차이 (0) | 2024.08.02 |
빌드(Build), 배포(Deploy) (0) | 2024.07.31 |
바이너리(Binary)란? (0) | 2024.07.31 |
런타임(Runtime), 컴파일(Compile) (0) | 2024.07.31 |