본문 바로가기
(멘토링 3)백엔드 API 구축/3주차 : Rest API 구현

1. 스프링부트로 개발 환경 설정하기

by 디벨로펀 2020. 9. 6.

[ Spring boot Project 생성 및 테스트 ]

File > New > Project > Spring Boot > Spring Starter Project

1) 프로젝트 셋팅

API를 만들기 위함이니 Spring Boot Devtools, Spring Web, MyBatis Framework 만 선택합니다.

스프링부트 버전은 추후 2.2.2 로 수정한 후 Next 그리고 Finish를 누릅니다.

 

 

2) Pom.xml 수정

Dependency를 수정합니다. Dependency에는 DB 관련 내용을 포함합니다.

부트 버전은 2.2.2로 수행합니다.

저는 lombok, jstl 관련 dependency도 추가해 놓았으나 해당 dependency는 삭제해도 무방합니다.

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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.2.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.devfun</groupId>
    <artifactId>settingweb_boot</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>settingweb_boot</name>
    <description>Demo project for Spring Boot</description>
 
    <properties>
        <java.version>1.8</java.version>
    </properties>
 
    <dependencies>
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
            <scope>provided</scope>
        </dependency>
        
        <!-- jstl 라이브러리 -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <!--  <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        
        <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.16.20</version>
            <scope>provided</scope>
        </dependency>
        
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.3</version>
        </dependency>
 
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        
        <dependency> 
            <groupId>org.mariadb.jdbc</groupId>
            <artifactId>mariadb-java-client</artifactId>
        </dependency>
 
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>
 
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
 
</project>
 
cs

 

 

3) application.properties 수정 ( src/main/resources )

 

1
2
3
4
5
6
7
8
9
10
11
12
server.port = 8031
server.servlet.contextPath=/
 
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp
 
devtools.livereload.enabled=true
 
spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
spring.datasource.url=jdbc:mariadb://127.0.0.1:3306/statistc
spring.datasource.username=root
spring.datasource.password=devfunpj
cs

port, contextpath, view, db 등 각종 설정을 한 곳에서 진행합니다.

설정내용은 serverport, contextpath를 진행하였고

suffix에 jsp를 줌으로써 /WEB-INF/views 아래에 jsp 파일로 자동으로 맵핑해주도록 합니다.

아래 테스트를 진행하면 test로 호출을 하면 test.jsp로 값을 전달한 화면이 보여짐을 확인 할 수 있습니다.

 

 

 

4) 기본 테스트 진행!

 

이미지와 같이 package, folder, jsp, java 파일을 만들고 설정대로 동작하는지 테스트 해봅니다.

[ src > main ] 아래에 webapp, views 폴더를 차례대로 만들고 test.jsp를 만듭니다.

 

test.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> 
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 
<!DOCTYPE html> 
<html lang="ko">
     <head>
         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
         <title>View Test Page</title> 
     </head> 
 <body> 
     <h2>설정 테스트 ${name}</h2> 
     <div>JSP 뿌리기</div> 
     <c:forEach var="item" items="${list}" varStatus="idx"> 
         ${idx.index} : ${item} <br /> 
     </c:forEach>
  </body> 
</html>
 
cs

 

com.devfun.settingweb_boot.test 패키지를 만들고

settingTest.java 를 만들어 아래와 같은 컨트롤러를 작성합니다.

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
package com.devfun.settingweb_boot.test;
 
import java.util.ArrayList;
import java.util.List;
 
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
 
@Controller
public class settingTest {
    
    @RequestMapping("/test"
    public ModelAndView test() throws Exception{ 
        ModelAndView mav = new ModelAndView("test"); 
        mav.addObject("name""devfunpj"); 
        List<String> resultList = new ArrayList<String>(); 
        resultList.add("!!!HELLO WORLD!!!"); 
        resultList.add("설정 TEST!!!"); 
        resultList.add("설정 TEST!!!"); 
        resultList.add("설정 TEST!!!!!"); 
        resultList.add("설정 TEST!!!!!!"); 
        mav.addObject("list", resultList); 
        return mav; 
    }
 
}
 
 
cs

 

프로젝트를 실행 후 /test를 호출해봅니다.

port는 application.properties에 등록한 대로 사용합니다.

 

즉 url은 localhost:8031/test 가 url이 됩니다.

 

 

테스트 결과 위와 같은 결과가 나옴을 확인 할 수 있습니다.

셋팅 대로 나옴을 확인 할 수 있습니다.

 

댓글