학부시절 jsp 프로젝트를 배포하기위해 tomcat과 war을 사용했다. 하지만 springboot는 jar파일을 통해 배포하는데 같은 java 파일이면서 war 과 jar 파일이 어떤 차이가있는지에대해 궁금하여 이 글로써 정리합니다.
WAR(Web Application Archive)
- 웹 어플리케이션을 지원하기 위한 압축 방식 웹 어플리케이션을 지원하기위해 war로 압축합니다.
war압축 은 jsp,servlet,gif, html,jar 등을 압축하고 지원합니다.
압축된 war파일을 외부 톰캣등 WAS 서버에 실행파일로 등록함으로써 배포한다.
- 외부 WAS 서버에 등록함으로서 실행된다.
- 실행하려면 WAS 서버가 필요하다.
JAR(Java Archive)
- Java 어플리케이션이 동작할수 있도록 자바 프로젝트를 압축한 파일
- Class(Java 리소스) 외 환경파일들이 포함되어있음
- 자바런타임(JRE) 만 있으면 어디서든 실행가능하다. (자바 환경만 있으면 어디서든 동일실행을 보장함)
🙄 스프링부트도 톰켓쓰지않아요 ?
그렇다. 스프링부트는 내장
톰캣이 지원된다. (그외 was 서버또한 build파일설정을통해 변경할수있다.)
스프링부트 프로젝트에 내장톰캣이 있으므로 외부 was 서버를 필요하지않는다. 또 Jar 파일로 빌드하므로 JRE환경이 있다면 어디서든 바로 실행가능하다.