Spring initializr에서 Spring Maven 프로젝트를 생성했다.
의존성 추가 없이 'War' Package로 zip 파일을 다운로드하였다.
IntelliJ Community 버전에서 프로젝트를 가져와 'Application.java'를 Run 했다.
오류는 나타나지 않았지만,
웹 서버가 작동 중인 상태로 유지되지 않고 실행 즉시 종료되는 현상을 확인했다.
이 문제는 'War' Package로 가져온 프로젝트이지만, 미리 구축한 WAS (Web Application Server) 환경이 작동 중이지 않을 때 발생한다
'pom.xml'을 확인한다.
'spring-boot-starter-tomcat' 의존성에서 'scope'가 'provided'로 설정되었는지 확인한다.
'provided'인 scope 옵션은 'War' 파일로 배포 시 '실행할 환경에서는 이미 WAS 환경이 존재하므로 Springboot Application만 배포'한다는 뜻이다.
SpringBoot의 내장 Tomcat 기능을 활성화하지 않고, Application을 실행할 서버에 맞춰 구동하겠다는 의미이다.
따라서 별도의 서버를 작동시키지 않는 환경에서 프로젝트를 실행하니 즉시 종료되는 것이다.
>> provided 설정된 scope를 주석처리 하거나 지운다.
scope 부분 주석처리 후 Maven 업데이트한 상태에서 Application.java를 다시 실행하면 서버가 정상 동작한다.
독립적인 간편한 서비스에 'Jar'를 배포하는 이유도 같이 알아볼 수 있었다.
Jar는 모든 의존성을 '내장'했기 때문에 실행 장소와 관계없이 동일한 환경 설정으로 Application 실행이 가능하다.
SpringBoot는 내장 서버를 포함하기 때문에 Jar 배포 시 별도의 서버 설치 없이도 실행이 가능하다.
서버 작업이 요구되는 경우에는 War가 아닌 Jar 배포를 통해 간편히 Application을 서비스 및 테스트할 수 있는 것이다.
- 끝 -
'작업 > Programming' 카테고리의 다른 글
파이썬(Python) 진법(2, 8, 16) 변환 (0) | 2021.08.22 |
---|---|
파이썬(Python) abs, all, any 함수 (0) | 2021.08.22 |
파이썬(Python) zip 함수 사용 (0) | 2021.08.15 |
파이썬(Python) 폴더 및 파일 이름 바꾸기 (2) | 2021.08.13 |
파이썬(python) enumerate (0) | 2021.07.31 |