JAR, WAR 차이점, 선택기준
지금까지 Spring Boot 프레임워크로 여러 프로젝트를 진행했다.
그리고 항상 후반부에는 jar 파일로 배포를 했다.
문득, 배포에는 jar와 war가 있다고 들었는데 왜 나는 jar로만 했을까? 하는
의문점이 들어서 이에 대해 알아보고자 블로그에 남긴다.
먼저 jar는 Spring Boot와 war는 Spring과 연관되어 있다.
1. jar와 Spring Boot
JAR (Java Archive)는 자바 클래스 파일, 메타데이터, 리소스 파일등을 포함한다.
모든 의존성과 구성 요소를 가지고 있어 독립적으로 실행이 가능하다.
이는 어디서나 동일한 환경으로 실행할 수 있게 한다.
Spring Boot는 내장 서버 (Tomcat, Jetty)등과 함께 JAR 파일로 패키징한다.
-> 별도의 서버 설치없이 실행 가능하다.
2. war와 Spring
WAR (Web Application Archive)는 JSP, 서블릿, HTML, CSS, JavaScript 등 웹 애플리케이션 구성 요소를 포함한다.
단독으로 실행 불가능하기 때문에 Tomcat 등의 WAS에서 실행되어야한다.
Spring 프레임워크를 사용하는 프로젝트에서는 WAR 파일을 생성해 WAS에 배포하면 서버가 애플리케이션을 실행시킨다.
장점: 다양한 웹 기능과 서버 환경을 활용할 수 있다.
단점: 서버에 종속적이기 때문에 환경설정이 필요하다.
3. JAR vs WAR
WAR: 서버에 종속적이므로, 서버의 기능(보안, 세션관리)과 환경을 활용할 수 있다. 대규모 프로젝트에서 적합하다.
JAR: 서버에 종속적이지 않고 어디서나 실행가능하기 때문에 빠른 개발에 적합하다. 또한, 작은 규모의 프로젝트나 MSA에 적합하다.
4. 배포 환경
WAR: 전통적인 웹 애플리케이션 서버에 배포
JAR: Spring Boot를 사용한다면 서버가 내장되어있어, 배포가 간단해 클라우드 환경에서 편리하게 사용가능
'공부의 일상' 카테고리의 다른 글
| [무중단 배포] 롤링 배포, 블루 그린 배포, 카나리 배포 (0) | 2024.06.11 |
|---|---|
| [io 도메인] 자주 접하게 되는 ".io" URL은 뭘까? (접속하면 위험한 주소일까?) (2) | 2024.06.04 |
| [TypeScript] 사용 이유, 등장 배경 (0) | 2024.05.31 |
| [JPA Pageable] 페이지네이션 속도 비교, 향상 (3) | 2024.05.29 |
| [HikariCP, DBCP] 커넥션 풀 (Connection Pool) 그리고 Hikari? (0) | 2024.05.27 |