일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- String클래스
- 입출력
- 알고리즘
- Git
- sql문
- for문
- 개발자
- DML
- MySQL
- 프로그래머스 SQL
- 프로그래밍
- 예외처리
- 웹개발
- select문
- where
- 자바스크립트
- 메서드
- select
- SQL
- 프로그래머스 sql 고득점 kit
- scanner
- BufferedReader
- Linux
- JavaScript
- 자바
- 백준
- 프론트엔드
- 형변환
- 데이터 조회
- html
- 리눅스
- 반복문
- order by
- Java
- 클래스
- 정보처리기사필기요약
- StringBuilder
- 백엔드
- github
- 정보처리기사
- Today
- Total
ToBe끝판왕
[ 개념정리 ] War 와 Jar 비교하기 본문
💡 JAR 와 WAR 의 개념과 특징에 대해서 알아보자 !!
✅ WAR 와 JAR
▶️ War ( Web Application Archive ) 패키징
- 외부 서블릿 컨테이너
• 톰캣 , 제티 등 외부 서블릿 컨테이너에 배포
• 내장서버를 미포함 하기 때문에 외부 서블릿 컨테이너 설정에 의존
- 웹 애플리케이션 표준
• WAR 파일은 웹 애플리케이션 위한 표준 패키징 형식
- 일반적인 WAR 파일 디렉터리 구조
• .war 확장자를 가진 파일
• META-INF , WEB-INF 을 가지고 있다.
• Local 에서 정적 리소스 ( css , js , img ) 및 mybatis xml 파일들은 WEB-INF/classes 안으로 들어가게 된다.
• JSP 를 사용한 프로젝트의 경우 일반적으로 WAR 배포를 자주 사용한다.
❗ 정적 리소스가 WEB-INF 안에 있기 때문에 브라우저가 직접 접근 불가능
( 스프링 부트 또는 서블릿 설정을 통해 정적 리소스를 제공할 필요성이 있다. )
▶️ Jar ( Java Archive ) 패키징
- 내장 서버
• 스프링 부트의 내장 서버( 톰캣, 네티 등 ) 을 포함하여 단독 실행이 가능
- 간편한 배포
• 별도의 외부 서블릿 컨테이너 설치 없이 JAR 파일 하나로 실행이 가능
- 일반적인 JAR 파일 디렉터리 구조
• .jar 확장자를 가진 파일
• META-INF , BOOT-INF 을 가지고 있다. ( BOOT-INF 는 스프링부트 기준의 파일이다. )
• Jar 파일은 단독 실행이 가능토록 의존성 라이브러리를 모두 포함하여 크기가 war에 비해 더 크다.
▶️ War 와 Jar 의 장단점 비교
구분 | 장점 | 단점 |
WAR | • 기존에 WAR 배포 환경을 갖춘 시스템에 손쉽게 통합 가능 • 다양한 서블릿 컨테이너에서 사용 가능 |
• 외부 서블릿 컨테이너를 별도로 설치해야 함 • JAR 파일에 비해 배포과정이 좀 더 복잡 |
JAR | • 배포 과정이 빠르고 간편함 • 외부 의존성 없이 단독적으로 실행 가능 |
• 내장 서버에 제한되어 유연성 부족 • 특정 서블릿 컨테이너를 사용해야 하는 경우 WAR 배포가 더 낫다. |
👉 WAR 배포는 기존 시스템과의 호환성이 중요하거나, 다양한 서블릿 컨테이너 기능을 활용해야할 때
적합하다. JAR 배포는 빠르고 간편한 배포, 클라우드 환경에서 컨테이너 기반 배포시 적합하며
요즘은 왠만한 레거시 환경이 아닌 이상 빠르고 간편한 Jar 로 배포를 하는 추세인걸로 보여진다.
'■ Programming Skills > 개념 정리' 카테고리의 다른 글
[ 개념 정리 ] HTTP 기본 ( HTTP 헤더 ) (5) (0) | 2025.01.12 |
---|---|
[ 개념 정리 ] HTTP 기본 ( HTTP 상태 코드 ) (4) (0) | 2025.01.09 |
[ 개념 정리 ] HTTP 기본 ( HTTP 메서드 - GET / POST / PUT / DELETE / PATCH ) (3) (0) | 2025.01.09 |
[ 개념 정리 ] HTTP 기본 ( HTTP 개념 / HTTP 메시지 ) (2) (0) | 2025.01.08 |
[ 개념 정리 ] HTTP 기본 ( IP / TCP / UDP / PORT / DNS / URI ) (1) (0) | 2025.01.07 |