티스토리 뷰


Spring Boot 프로젝트는 물론 STS에서 쉽게 Starter 프로젝트로 생성할 수 있지만,


메이븐(maven)을 활용하여, 기본적인 세팅을 할 수 있습니다.(같이 알아 두면 좋을 것 같습니다~!)


메이븐은 프로젝트에 라이브러리 관리 및 프로젝트 Build 툴이라고 생각하면 쉬울 것 같습니다^^


maven 설치는 http://maven.apache.org/download.cgi zip 파일로 받으시고, 환경변수 세팅을 합시다.


cmd나 git를 설치하셨으면 bash창을 열고, 


> mvn -B archetype:generate -DgroupId=com.example -DartifactId=woobong2 -Dversion=1.0.0-SNAPSHOT -DarchetypeArtifactId=maven-archetype-quickstart


라고 입력을 하면, 프로젝트 템플릿이 생성이 됩니다. 폴더 구조는 다음과 같습니다.




내부 폴더를 보면 main밑에 com.example 밑에는 App.java 파일이 하나 있고, 단순히 'Hello World'를 찍는 main 메소드 입니다.


스프링 부트를 사용하기 위해서는 pom.xml 파일의 사용할 의존 관계(라이브러리)를 정의해야 합니다.


기본적으로 웹 애플리케이션 틀을 위해  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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<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/maven-v4_0_0.xsd">
 
    <modelVersion>4.0.0</modelVersion>
 
    <groupId>com.example</groupId>
    <artifactId>woobong2</artifactId>
    <packaging>jar</packaging>
    <version>1.0.0-SNAPSHOT</version>
    <name>woobong2</name>
 
    <!-- 스프링 부트의 설정 정보를 상속, 스프링 부트의 버전을 입력  -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.2.4.RELEASE</version>
    </parent>
 
    <dependencies>
        <!--
           스프링 부트로 웹 APP을 만들 때 기본 라이브러리 정보
           버전은 parent tag 에 지정되어 있으므로 생략
           웹 APP 제작에 필요한 관련 라이브러리 및 서드파티 라이브러리를 이용가능하게함
       -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
 
        <!--
            스프링 부트로 제작 시에 필요한 유닛테스트 라이브러리 정보
        -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
 
    <!-- 스프링 부트 프로젝트를 실행하기 위한 MAVEN 빌드 설정 -->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
 
    <!-- 자바 버전 설정 -->
    <properties>
        <java.version>1.8</java.version>
    </properties>
</project>
cs


수정한 pom.xml의 내용을 적용하기 위해서 다시 메이븐을 통해 라이브러리를 다운 받고, tree 구조를 확인해 봅시다.


> mvn dependency:tree




스프링 관련 라이브러리 외에도 웹이나 테스트에 관련된 라이브러리도 포함되어 있습니다.

- 로깅라이브러리 : SLF4

- AOP : aopaliance

- TOMCAT

- YAML : YAML 라이브러리

- JACKSON : JSON 라이브러리

- Junit : JUnit 테스트 라이브러리 등...


다른 사람들이 말하길, 스프링 부트로 웹 애플리케이션을 개발하면, 굉장히 쉽게 웹을 올릴 수 있다고들 합니다.

저도 한번 웹으로 "Hello World"를 출력해보도록 할게요.


먼저 com.example.App.java 파일을 

다음과 같이 수정해봅시다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package com.example;
 
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
 
@RestController
@EnableAutoConfiguration
public class App {
    
    @RequestMapping("/")
    String home() {
        return "Hello World";
    }
        
    public static void main( String[] args )   {
        SpringApplication.run(App.class, args);
    }
}
 
cs


@RestController는 Spring 에서 API 쪽으로 한번이라도 찾아보신적이 있다면, 쉽게 이해할 수 있습니다.

중요한 것은 @EnableAutoConfiguration 입니다.


여러가지 설정이 이 애노테이션 하나로 인해 자동으로 설정이 됩니다.(꿀!!)

저장을 하고, 실행을 해보도록 하겠습니다.


> mvn spring-boot:run


별도로 톰캣을 사용하지 않았지만, 톰캣이 내장되어 있으므로 웹 서비스가 올라갑니다. 별도의 설정을 하지 않았으므로, 포트번호는 기본 톰캣 포트인 8080으로 실행이 되고,

http://localhost:8080/ 으로 접속을 하면, 브라우저에서 Hello World를 보실 수가 있습니다.^^


스프링 부트의 장점은 톰캣이 내장되어 있기 때문에 jar 파일로 패키징을 하게 되면 배포 또한 쉽게 서비스를 올릴수 있다는 점입니다.


> mvn package

를 통해 jar파일로 패키징을 해봅니다.


필요한 라이브러리를 다운 받아서 jar 파일로 패키징을 하고, 프로젝트 내에 target 폴더에 pom.xml의 버전 명으로 jar파일이 생성 됩니다.


한번 실행을 해보면~ 다음과 같이 콘솔을 확인할 수 있습니다.

이 때 --server.port=포트번호 를 통해 포트번호도 변경하 실 수 있습니다.


다음부터는 STS(IDE)를 사용하며, 스프링 부트를 본격적으로 공부하도록 할 예정입니다.



많은 지적과 조언 부탁드립니다. 감사합니다~^^

댓글