[Spring Boot #1] 인텔리제이(IntelliJ)로 스프링 부트 프로젝트 시작하기

| 스프링 부트(Spring Boot)란?


스프링 부트(Spring Boot)는 스프링 프레임워크 기반 어플리케이션을 더 빠르고 쉽게 개발할 수 있게 해주는 오픈소스 프로젝트입니다. 스프링 프레임워크만으로 개발할 때보다 간단한 설정만으로도 쉽게 웹 어플리케이션을 제작할 수 있습니다.


| 인텔리제이(IntelliJ) IDE


인텔리제이(IntelliJ)JetBrain사에서 개발한 자바 IDE입니다. 기존의 이클립스(Eclipse) IDE보다 여러 면에서 월등하다고 평가받고 있는 IDE이며 유료 구독 버전인 Ultimate 버전과 무료 버전인 Community 버전을 사용할 수 있습니다. 


아래는 인텔리제이 커뮤니티 버전을 받을 수 있는 사이트입니다.


https://www.jetbrains.com/idea/


| 인텔리제이(IntelliJ)를 통한 스프링 부트 프로젝트 만들기


인텔리제이 Community 버전을 기준으로 스프링 부트를 만드는 법을 설명하도록 하겠습니다. 


인텔리제이를 설치하고 나면 Tool바File => Project를 누릅니다.



Maven를 클릭합니다.


Maven 프로젝트의 그룹명과 아티팩트명을 써줍니다.



프로젝트명을 씁니다.


다음과 같이 Maven 프로젝트가 만들어 졌습니다. 



Maven 프로젝트의 pom.xml에 다음과 같은 의존성을 추가합니다. 아래는 스프링 부트를 가동할 수 있는 의존성을 추가한 상태입니다.


<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.tutorial</groupId>
<artifactId>springboot-tutorial</artifactId>
<version>1.0-SNAPSHOT</version>

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.1.RELEASE</version>
</parent>

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>


다음과 같이 프로젝트 구조를 만듭니다.



Application.java의 코드는 다음과 같습니다.

package com.tutorial.springboot;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Application {

public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}

아래와 같이 Run 'Application'을 클릭합니다.



다음과 같이 콘솔창에서 실행되는 것을 알 수 있습니다.

.   ____          _            __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.1.1.RELEASE)

2018-12-21 20:46:36.097 INFO 10656 --- [ main] com.tutorial.springboot.Application : Starting Application on USER-PC with PID 10656 (C:\Users\user\spring\springboottutorial\target\classes started by user in C:\Users\user\spring\springboottutorial)
2018-12-21 20:46:36.101 INFO 10656 --- [ main] com.tutorial.springboot.Application : No active profile set, falling back to default profiles: default
2018-12-21 20:46:37.662 INFO 10656 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)
2018-12-21 20:46:37.700 INFO 10656 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2018-12-21 20:46:37.700 INFO 10656 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/9.0.13
2018-12-21 20:46:37.715 INFO 10656 --- [ main] o.a.catalina.core.AprLifecycleListener : The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [C:\Program Files\Java\jdk1.8.0_131\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\oraclexe\app\oracle\product\11.2.0\server\bin;;C:\oraclexe\app\oracle\product\11.2.0\server\bin;C:\ProgramData\Oracle\Java\javapath;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Program Files\Java\jdk1.8.0_131\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\system32\config\systemprofile\.dnx\bin;C:\Program Files\Microsoft DNX\Dnvm\;C:\Program Files (x86)\Dev-Cpp\MinGW64\bin;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\Program Files\PuTTY\;C:\Program Files\apache-maven-3.5.0\bin;C:\Users\user\.m2\repository\org\apache\maven\apache-maven-3.5.0-bin\apache-maven-3.5.0\bin;C:\Program Files\Microsoft SQL Server Migration Assistant for Access\bin\;C:\Program Files\Microsoft SQL Server Migration Assistant for MySQL\bin\;C:\Program Files\dotnet\;C:\Program Files\Git\cmd;C:\Program Files\nodejs\;C:\Program Files\Amazon\AWSCLI\;C:\WINDOWS\System32\OpenSSH\;D:\gradle\bin;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.0\;C:\Program Files\Microsoft SQL Server\120\Tools\Binn\;C:\maven\bin;C:\Program Files (x86)\Common Files\Adobe\AGL;C:\Users\user\Anaconda3;C:\Users\user\AppData\Local\Microsoft\WindowsApps;C:\Program Files\Bandizip\;;C:\Program Files\Microsoft VS Code\bin;C:\Users\user\AppData\Roaming\npm;C:\Users\user\AppData\Local\Programs\Microsoft VS Code\bin;.]
2018-12-21 20:46:37.861 INFO 10656 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2018-12-21 20:46:37.861 INFO 10656 --- [ main] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 1662 ms
2018-12-21 20:46:38.127 INFO 10656 --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor'
2018-12-21 20:46:38.324 INFO 10656 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
2018-12-21 20:46:38.328 INFO 10656 --- [ main] com.tutorial.springboot.Application : Started Application in 2.933 seconds (JVM running for 4.486)

스프링 부트는 maven을 통해 빌드하면 jar 파일 하나가 생성됩니다. 이 jar파일을 실행시키면 스프링 부트가 위와 같이 실행되는 것을 볼 수 있습니다. 단순히 스프링 프레임워크만을 써서 개발을 했을 경우에는 톰캣(Tomcat)과 연동하여 war 파일을 만들어서 실행해야 했지만 스프링부트는 스프링부트 안에 자체적으로 톰캣이 내장되어 있어 그럴 필요 없이 바로 jar 파일 하나만 실행하면 웹 어플리케이션을 가동할 수 있습니다.


아래와 같이 Maven 명령어를 쳐서 패키징을 합니다.


아래와 같이 발드 및 패키지가 자동적으로 실행됩니다.


다음 아래와 같이 명령어를 쳐서 위에서 생성된 스프링 부트 jar파일을 실행합니다.


아래와 같이 스프링부트가 실행되는 것을 볼 수 있습니다.

2018-12-21 21:26:18.939  INFO 552 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2018-12-21 21:26:18.940 INFO 552 --- [ main] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 1422 ms
2018-12-21 21:26:19.187 INFO 552 --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor'
2018-12-21 21:26:19.394 INFO 552 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
2018-12-21 21:26:19.397 INFO 552 --- [ main] com.tutorial.springboot.Application : Started Application in 2.333 seconds (JVM running for 2.747)


참고자료 : https://www.inflearn.com/course/스프링부트


이 글을 공유하기

댓글(2)

  • LeeMark
    2019.10.17 16:48

    저는 왜 패키징이 안 될까요?
    zsh: command not found: mvn
    맥OS 사용중입니다

    • 2019.10.17 23:03 신고

      댓글 달아주셔서 감사합니다 ㅠㅠ

      이렇게 한 번 해보세요~ (stackoverflow 참고했습니다)

      1. 아래 명령어를 쳐서 .zshrc 파일을 만들거나 열어야 합니다.

      vim ~/.zshrc

      2. 파일 맨 끝에다 다음 문구를 추가합니다.
      source ~/.bash_profile;

      3. 터미널을 껐다가 키거나 터미널에 위의 문구를 다시 입력해 봅니다.
      source ~/.bash_profile;

Designed by JB FACTORY