● 자바 파일을 배포하는 방법
● JAR
- JAR은 Java Archive의 약자이다. class 및 설정 파일들을 압축해서 만들어진 하나의 어플리케이션 혹은 라이브러리다.
● WAR
- WAR은 Web Application Archive의 약자이다. JSP나 Servlet 등 WAS 컨테이너 위에서 동작하게 빌드된 형태이다.
- 웹 어플리케이션을 어떻게 설정할 지에 대한 정의가 있는 web.xml 파일을 포함하고 있다. WAS가 동작을 하면 이 파일에서 설정들을 불러온다.
● 스프링부트에서 JAR와 WAR
- 스프링부트 프로젝트를 새로 생성할 때, jar 또는 war로 패키징 방식을 선택할 수 있다.
- 두 방식 모두 WAS 컨테이너 위에서 동작하게 되는데, 이는 JAR파일에 WAS가 내장되어 있기 때문이다. embeded tomcat을 jar에 내장해 jar파일로도 빌드가 가능하다.
- 따라서 기존 톰켓과 같은 컨테이너를 이용해야 했든 스프링보다 훨씬 간단하게 어플리케이션을 제작/배포할 수 있다.
- 하지만 외부 WAS를 이용해야 할 경우 WAR파일로 패키징을 해야한다.
● JAR 배포 시 JSP 템플릿 프레임워크 작동하지 않음
- 스프링부트 공식문서에 따르면 JSP 프레임워크는 jar 배포시 작동하지 않는다고 되어있다.
- jsp는 jar로 배포 할 경우, src/main/resource/META-INF/resources/WEB-INF/jsp에 jsp파일을 두면 jar에 포함 되고, view도 찾을수 있다.
- 추가 : src/main/resource/application.properties 이곳에 두 라인 추가하면 된다.
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp
● 마무리
- 외장 WAS를 사용할 경우 WAR 배포
- 내장 WAS를 사용할 경우 JAR 배포
- JAR와 다르게 WAR은 WEB-INF 및 META-INF 디렉토리로 사전 정의된 구조를 사용하며, WAR 파일을 실행 할 경우 Tomcat, Weblogic, Websphere 등 웹서버(WEB)와 WAS가 필요하다.
'Programming > Spring Boot' 카테고리의 다른 글
메이븐(Maven)과 그래들(Gradle) (0) | 2022.10.29 |
---|
댓글