이전까지 우리는 Spring이 무엇이고 어떤 특징이 있는지 알아봤으며 추가로 Maven이란 빌드 도구에 대한 이해까지 진행하였습니다.
이제, Spring boot를 이용해 프로젝트를 생성하고 어플리케이션을 실행해보는 시간을 가져보겠습니다. 최종적으로 이 포스팅을 다 봤을 때, 하나의 프로젝트를 진행하면서 어떠한 고민을 하고 어떻게 해결했는지 모두가 이해하고 함께 나아가는 그런 포스팅이 되었으면 하는 바람입니다.
Intellij Cummunity Edition을 사용할 경우에는 Spring initializr를 통해 프로젝트를 생성할 수 있으며 Intellij 라이센스 인증을 한 회원들은 내부 plugin을 통해 프로젝트를 생성할 수 있습니다.
회사에서 라이센스를 구매했기에 지금의 전체 진행 과정은 Intellij 라이센스를 인증한 사람을 기준으로 진행합니다.
1) Intellij -> File -> New -> Project
다음과 같이 진행할 경우 다음과 같은 화면이 노출됩니다.
해당 화면을 통해서 기본적인 Spring Project에 대한 설정이 가능해집니다. 해당 프로젝트에서는 SDK는 JDK11을 사용하고, Java 버전 또한 11을 사용하겠습니다.
최신 버전을 이용하고 싶을 경우 해당 버전을 Project SDK -> Download JDK... 를 통해 다운로드 받아 이용하면 됩니다.
해당 설정을 완료하고 Next 버튼을 누를경우, 다음과 같은 화면이 나옵니다.
Spring Boot 버전에 따라 지원하는 기술이 다르니 원하는 버전으로 설정합니다.(보통 가장 최신 버전을 이용합니다.)
이후 내가 사용할 의존성을 대략적으로 체크하여 pom.xml에 의존성을 추가할 수 있습니다.
선택한 의존성
일반적으로 사용하는 의존성으로는 다양한 것들이 있는데 해당 부분에 대해서는 각자 확인해보면 좋을 것 같습니다.
다음과 같이 의존성을 추가할 경우에는 Spring initializr에서 자동적으로 해당 의존성을 추가해주지만 만일 개인적으로 추가하고 싶은 의존성이 있다면 Maven Repository에서 찾아 의존성을 추가해주면 됩니다.
한 예시로, google에서 만든 라이브러리인 guava를 의존성에 추가하려면 다음과 같이 진행하면 됩니다.
참고 : https://mvnrepository.com/artifact/com.google.guava/guava/19.0
해당 링크에 들어가면 추가해야 할 의존성을 볼 수 있습니다. 해당 코드를 복사하여 pom.xml에 추가하면 guava 라이브러리를 이용할 수 있게 됩니다.
프로젝트를 생성하면 다음과 같은 프로젝트 구조를 볼 수 있습니다.
우리가 설정한 프로젝트 명으로 최상위 폴더가 구성되었으며 src/main/java 하위 패키지 명이 설정한 패키지 명으로 구성되는 것을 알 수 있습니다.
해당 패키지 내부로 들어가보니 ProjectSpringBootApplication 파일이 생성된 것을 알 수 있다. 한번 내부를 확인해보는 시간을 가져보겠습니다.
ProjectSpringBootApplication.java
package com.example.projectspringboot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class ProjectSpringBootApplication {
public static void main(String[] args) {
SpringApplication.run(ProjectSpringBootApplication.class, args);
}
}
내부를 확인해보니 다음과 같은 코드로 작성되어 있습니다. 그냥 대충 읽어보면 SpringApplication.run을 통해 해당 클래스를 실행시킨다는 의미로 받아들여집니다. 근데 달랑 이 로직만으로 실행이 돼? 라는 의문이 있었습니다.
실행이 된다... 왜 실행이 될까요?
Spring Boot를 이용한 프로젝트 생성 및 실행을 알아보았습니다. 실행을 할 경우 다음과 같이 8080 포트로 tomcat이 시작되어 Started ProjectSpringBootApplication이라는 로그가 남습니다.
우리는 해당 정보를 통해 어플리케이션이 실행됨을 알 수 있습니다.
하지만 왜 실행이 되고, 어떤게 동작을 하는지 아는 것이 없습니다. 또한 이 프로젝트를 만들어서 어떻게 관리를 하는지 또한 잘 모릅니다.
따라서, 프로젝트를 관리하는 방법 및 Spring Boot가 어떻게 실행이 되는지에 대해 자세히 알아보는 시간을 가지고 최종적으로는 하나의 사이트를 만드는 과정까지 진행하고자 합니다.
읽어주셔서 감사합니다.