본문 바로가기
Tech-MSA

Spring Boot 시작하기

by redcrow 2020. 7. 20.

1. Spring Boot란 무엇인가


Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run".


스프링은 독립적이고, 운영 수준의 바로 수행이 가능한 스프링기반 애플리케이션을 쉽게 만들게 해줍니다.

- 스프링 공식페이지 ( https://spring.io/projects/spring-boot )



예전에는 웹페이지에 Hello World라고 한줄 찍으려면,  Tomcat과 같은 WAS를 설치하고, 웹애플리케이션(서블릿,jsp)등을 개발해서 해야했는데 스프링부트를 이용하면 여러 절차 를 단축해서 쉽게 구축이 가능합니다.


Spring Boot의 특징은 아래와 같습니다.

  • Create stand-alone Spring applications
  • 독립 실행 스프링 어플리케이션 생성
  • Embed Tomcat, Jetty or Undertow directly (no need to deploy WAR files)
    내장 Tomcat, Jetty 또는 Undertow (WAR 파일을 배포할 필요없음)
  • Provide opinionated 'starter' dependencies to simplify your build configuration
    빌드 설정을 단순화하기위해 Spring Boot에만 특화된 starter를 제공합니다. (opinionated : 편향된, 특화된)
  • Automatically configure Spring and 3rd party libraries whenever possible
    필요할때  스프링과 서드파티 라이브러리를 자동으로 설정합니다.

Spring.io에서 제공하는 간단한 예제를 좀 손봐서 샘플 프로젝트를 진행해보겠습니다.



2. Spring Quickstart Guide ( https://spring.io/quickstart )


IDE 와 JDK는 미리 준비되어 있어야합니다.

Eclipse, IntelliJ 등 상용IDE 를 사용하면 되고 STS(Spring Test Suite)를 사용하려면 아래 사이드에서 다운로드 받습니다.  https://spring.io/tools


여기서는 STS 기준으로 설명합니다.


1) Spring Initializr 에서 몇가지 항목만 입력하면 프로젝트 초기파일을 생성해서 제공해줍니다.

    https://start.spring.io/ 


    모두 입력한 후 GENERATE 를 클릭하면 파일이 생성되어 다운로드 됩니다.





2. 다운로드된 Hello_MSA_World.zip을 STS workspace 폴더에서 압축을 풉니다.

   이 workspace는 STS 실행시 확인하는 workspace와 동일해야 합니다.




3. IDE를 실행하면 초기 workspace를 확인하고, 압축을 푼 폴더를 import  합니다.



메뉴에서 file->import-> Gradle을 선택하고 Existing Gradle Project를 클릭합니다.


      



4. HelloMsaWorldApplication


Web page에 'Hello MSA World'라고 출력하는 프로그램을 개발합니다.


HelloMsaWorldApplication.java에서 직접 url을 매핑하는 방법과 HelloController라는 컨트롤러를 별도로 만들어서 매핑하는 방법 두가지를 알아봅니다.


1)  HelloMsaWorldApplication.java 수정


@GetMapping("/hello")

public String hello(@RequestParam(value="name", defaultValue="MSA World") String name) {

return String.format("Hello %s!",name);

}


/hello 라는 요청이 오면 파라미터값으로 name을 받아서 출력을 리턴하라는 method 입니다.


사용된 Annotation은 @GetMapping과 @RequestParam 이고 각각의 기능은 아래와 같습니다.


@GetMapping("/hello") : /hello라는 요청이 들어오면 hello(String name)을 호출할것

@RequestParam(value="name", defaultValue="MSA World") : /hello?name="Another World"와 같이 파라미터와 같이 요청이 들어올 경우 값인 "Another World"를 name 에 매핑하고, 없을 경우 초기값인 "MSA World"를 매핑할 것




2) HelloController.java 신규


아래처럼 클래스를 신규로 만듭니다.



비슷한 기능을 가진 여러 Annotation을 맛보기 위해  method를 두개 만들었습니다.


@RequestMapping(value = "/hello1", method = RequestMethod.GET)  : @GetMapping("/hello1")과 동일




package com.redcrow.Hello_MSA_World;


import org.springframework.web.bind.annotation.*;


@RestController

public class HelloController {

@RequestMapping(value = "/hello1", method = RequestMethod.GET)

public String hello1() {

return "Hello MSA World1!";

}

@GetMapping("/hello2")

public String hello2(@RequestParam(value="name", defaultValue="MSA World2") String name) {

return String.format("Hello %s!",name);

}


}




3) 어플리케이션 기동


  • Hello_MSA_World/src/main/resources/application.properties 파일 수정 : server.port = 8081

  • HelloMsaWorldApplcation.java 선택후 마우스 우클릭. Run as > Java Application


아래 처럼 로그가 콘솔창에 뜹니다. 5번째 라인보면 Apache Tomcat  엔진이 기동되는것도 보입니다.

  • 브라우저 열고  http://localhost:8081/hello 를 입력하면 메시지가 출력됩니다.


스프링부트 맛보기 끝.


댓글