DOing
[WEB] JAR vs WAR 그리고 스프링 부트 본문
웹서버를 배포하려다보니 .war, .jar 파일이 헷갈려서 짚고 넘어가보려고 한다.
[ JAR ]
자바프로젝트 압축 파일포맷
Java Archive
자바 클래스 파일과 클래스가 이용하는 관련 리소스 및 메타 데이터를 모아서 배포하기 위한 소프트웨어 패키지 파일포맷이다.
- 원하는 구조로 구성 가능
- JRE(Java Runtime Envirment)만 가지고도 실행 가능
[ WAR ]
웹 어플리케이션 압축 파일포맷
Web application Archive
Servlet/Jsp 컨테이너에 배치할 수 있는 웹 어플리케이션 압축 파일 포맷이다. JSP, Servlet, Class, XML, HTML, Javascript 및 웹 애플리케이션을 함께 이루는 자원들을 모아 배포하는 데 사용된다. 즉, 웹 관련된 자원들만 포함하고 있어 웹 애플리케이션의 간편한 배포를 도와준다.
- WEB-INF, META-INF구조를 따라야한다.
- 웹서버나 WAS가 있어야 실행 가능
[ 스프링부트과 JAR, WAR ]
JSP파일을 사용한다면 JAR가 아닌 WAR를 사용해야 한다.
또한, 일반적으로 외장 WAS를 사용하는 경우에는 WAR파일을, 내장 WAS를 사용하는 경우 JAR파일을 사용한다고 한다.
스프링 부트의 장점으로 꼽히는 것들 중 하나에는 'JAR파일로 간단하게 배포 가능하다'라는 것이 있다.
스프링 부트는 톰캣을 JAR에 내장하기 때문에 바로 실행가능한 JAR파일로 빌드와 배포가 가능하다. 독립적이고 가볍게 만들 수 있는 것이다.
실제로 스프링 부트를 사용하여 JAR파일로 빌드, 배포할때는 AWS EC2서버에 JDK 1.8만 설치했었다.
하지만 스프링은 WAR파일로 빌드, 배포하기 때문에 EC2 서버에 tomcat도 설치해야한다.
참고 출처 :
ko.wikipedia.org/wiki/JAR_(%ED%8C%8C%EC%9D%BC_%ED%8F%AC%EB%A7%B7)
ko.wikipedia.org/wiki/WAR_(%ED%8C%8C%EC%9D%BC_%ED%8F%AC%EB%A7%B7)
'WEB' 카테고리의 다른 글
[WEB] HTTP 인증방식1_세션/쿠키 (0) | 2021.06.11 |
---|---|
빌드 도구, Gradle vs Maven (0) | 2021.05.08 |
[WEB] Dyanmic IP와 DHCP (0) | 2021.04.14 |
[WEB] 공유기 (Private IP, NAT) (0) | 2021.04.14 |
[WEB] 웹 호스팅, 서버 호스팅, 클라우드 (0) | 2021.04.14 |