작성
·
941
0
users microservice 프로젝트 생성 시, jar와 war의 차이에 대해서 언급해주신 부분에 대해 궁금한 점이 있어 질문 드립니다!
설명 해주시기로, jar로 패키징 시 임베디드 톰캣을 통해 실행이 된다고 하셨는데, IDE에서 프로젝트 실행 시에도 jar는 jre를 통해서 실행되는 것이 아닌가요?..
war로 패키징하는 프로젝트가 웹 어플리케이션 구조로 임베디드 톰캣에 의해 기동된다고 알고 있어서 혼란스러운 부분이 있어서요!
제가 IDE에서 기동할 때와 그냥 서버 위에서 기동할 때를 혼돈하고 있는 걸까요??..
답변 1
3
안녕하세요, 이도원입니다.
강의에서 언급한 대로, jar 파일은 임베디드 톰캣을 기동하여, Spring Boot가 실행되고 있으며, war 파일은 패키징 된 war 파일이 기존의 다른(외부) WAS에 배포되어 실행되는 형태가 일반적입니다. war파일은 WAS의 webapps 폴더에 위치하게 되면, WAS가 자동으로 압축을 해제하여 Context로 등록하여 사용하게 됩니다. 일반적으로 Tomcat에서는 server.xml이라는 설정 파일에서 ROOT Context를 지정해 놓고 있기 때문에, ROOT.war 파일로 패키징하여 배포하고 압축이 해제 되면, http://[호스트IP_또는_도메인]/으로 접속하여 사용하실 수 있습니다. 추가로, war 파일은, jar 파일의 실행처럼 독립적인 임베디드 톰캣을 이용하여 실행하실 수도 있습니다.
모든 jar 파일 및 war 파일의 실행에는 말씀하신 것 처럼 jre가 필요합니다. IntelliJ에 내장된 JDK를 사용하거나, 별도로 설치하신 JDK를 지정하여 사용하실 수도 있습니다.
감사합니다.
2023년 새해 복 많이 받으세요~
오