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

2021. 3. 15. 02:06 Spring Framework/Spring boot #2

| 스프링 부트(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에 다음과 같은 의존성을 추가합니다. 아래는 스프링 부트를 가동할 수 있는 의존성을 추가한 상태입니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?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>
cs

 

 

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

 

 

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/스프링부트



출처: https://engkimbs.tistory.com/748?category=767865 [새로비]