happyjeong97.log
로그인
happyjeong97.log
로그인
Jar VS War
JeongHoHyun
·
2025년 2월 6일
팔로우
0
Springboot
Spring Boot
목록 보기
4/7
JAR (Java ARchiv)
특징
독립 실행 가능
spring-boot-starter-web을 사용하면 내장 웹서버 (Tomcat, Jetty, Undertow)가 포함되어 있어서 별도의 외부 웹 서버 없이 실행 가능.
java -jar myapp.jar 명령어로 실행 가능
JSP는 사용 불가능
배포 방식
보통 클라우드 환경(AWS, GCP, Azure 등)이나 컨테이너 환경(Docker, Kubernetes)에서 실행하는 경우 적합.
Spring Boot Application이 포함된 하나의 실행 가능한 JAR 파일을 생성하여 실행 가능.
JSP를 사용하려면 WAR룰 선택
구성
"BOOT-INF/" 디렉토리에 클래스 파일과 라이브러리가 포함됨.
"META-INF/" 디렉토리에 매니페스트 정보가 저장됨.
장점
✅ 간단한 실행 방식 : 내장 서버 포함 -> 외부 서버 설정 불필요
✅ 클라우드 및 컨테이너 배포 용이 : 독립 실행 가능
✅ 빠른 개발 및 실행 환경 구축 가능
단점
❌ 기존 WAS(Tomcat, JBoss, WebLogic 등)와의 연동이 어려움
❌ WAR 기반 프로젝트를 유지보수하는 경우 JAR 방식으로 변환이 필요할 수도 있음
WAR(Web Applicatioin Archive)
특징
WAS(Web Application Server)에 배포 필요
JAR 방식과 다르게 내장 서버를 포함하지 않음.
Tomcat, JBoss, WebLogic 같은 외부 애플리케이션 서버(WAS)에 배포하여 실행.
배포 방식
war 파일을 생성하여 Tomcat, JBoss, WebLogic 등에 배포하여 실행해야 함.
구성
"WEB-INF/" 디렉토리에 클래스 파일, 라이브러리, 설정 파일이 포함됨.
JAR 파일과 다르게 실행가능한 main() 메서드가 필요하지 않음.
장점
✅ 기존 WAS 환경과 호환 가능
여러 엔터프라이즈 환경에서 사용되는 기존의 WAS 환경과 호환성 높음
✅ 대규모 프로젝트에서 사용 가능
여러 서브 모듈을 퐇마하는 경우 활용 가능
단점
❌ 별도의 WAS 필요
내장 서버가 없으므로 실행하려면 별도로 WAS가 필요.
❌ 배포 및 유지보수가 상대적으로 복잡.
JAR에 비해 설정과 배포 과정이 복잡하다.
언제 JAR를 쓰고 WAR를 써야할까
JAR를 선택하는 경우
클라우드(AWS, GCP, Azure)환경에서 실행할 때
Docker 컨테이너에 배포할 때
독립 실행형 애플리케이션이 필요할 때
빠르게 개발하고 배포할 때
WAR를 선택하는 경우
기존 WAS(Tomcat, JBoss, WebLogic 등) 환경을 유지해야 할 때
엔터프라이즈 환경에서 대규모 프로젝트를 관리할 때
여러 개의 애플리케이션이 동일한 WAS에서 실행될 때
JSP를 사용해야 할 때
JeongHoHyun
Java Back-End 2022.11.01 💻~ing
팔로우
이전 포스트
HTTP 요청 메시지 로그
다음 포스트
Thymeleaf 스프링 부트 설정
0개의 댓글
댓글 작성