문제 발생
application 실행 직후 "Process finished with exit code 0" 이런 메세지가 뜨며 다른 에러 메세지는 없이 그대로 종료되어버렸다.
이 메세지에 대해 찾아보니 대부분 '프로그램이 정상적으로 실행되었고 성공적으로 종료되었음을 나타낸다'고 한다.
이 사이트는 파이썬을 사용했긴 하지만 해당 메세지에 대해서는 동일하게 설명하고 있다.
근데 나는 프로그램 종료가 되면 안되는 상황인데? 대체 왜..?
원인 파악
이 문제는 내장 톰캣과 관련된 것이라고 한다.
앞서 말했듯 실행은 정상적으로 되었지만 application이 내장 톰캣에 올라가지 못한 것이다.
해결
생각보다 해결 방법은 간단했다.
Spring Boot는 웹 애플리케이션을 실행하기 위해 내장 톰캣을 기본적으로 제공한다.
따라서 해당 의존성을 추가해주면 된다.(사실 이 의존성이 추가되어 있는 줄 알고 있어서 왜 이러지..? 했었다.)
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
}
Spring Boot에서 "spring-boot-starter-web" 의존성을 사용하면 내장 톰캣(Embedded Tomcat)이 자동으로 설정되고 실행된다.
이 스타터 의존성은 스프링 웹 애플리케이션을 개발할 때 필요한 여러 구성 요소와 라이브러리들을 제공하며, 내장 톰캣을 자동으로 설정하여 웹 애플리케이션을 실행할 수 있도록 도와준다.
내장 톰캣을 사용하면 별도의 톰캣 서버를 설치하거나 구성할 필요 없이 스프링 부트 애플리케이션을 실행할 수 있다.
내장 톰캣은 Spring Boot 애플리케이션을 실행하고 내부적으로 웹 요청을 처리하는 데 사용된다.
즉, "org.springframework.boot:spring-boot-starter-web" 의존성을 추가하지 않아 내장 톰캣에 애플리케이션이 올라가지 않아서 "Process finished with exit code 0" 메세지가 떴던 것이다.
아래는 해결 후 모습이다.
내장 톰캣에 애플리케이션이 잘 올라가서 내장 톰캣의 초기화, 서비스 시작, 서블릿 엔진 시작, 실행 포트 및 컨텍스트 경로 설정돠 관련된 정보가 로그에 뜨는 것을 확인할 수 있다.