erea

spring boot 본문

dev/spring boot

spring boot

erea 2018. 6. 24. 19:48

Spring boot

Spring boot란?

Spring Boot는 내장된 웹 애플리케이션 서버(Tomcat, Jetty), 의존성을 손쉽게 관리할 수 있는 스타터 POM(Project Object Model), 설정의 표준화와 자동화 등으로 웹 애플리케이션의 개발과 운영을 이전보다 쉽게 할 수 있게 합니다.

Spring boot 장점

1. 자주사용하는 프로젝트 조합을 미리 만들어놨습니다.

일일히 라이브러리를 찾으면서 추가해줄필요없이 spring-boot-starter-web을 Maven 설정만해주면 관련라이브러리를 받아옵니다.


2. 설정을 자동으로 수행합니다.

@Enableautoconfiguratio 어노테이션의 같은경우 자동설정해주는 녀석으로 스프링부트의 마법이라고 불리웁니다.

비슷한 어노테이션으로 @SpringBootApplication 이 있는데

이것은 // @Configuration + @EnableAutoConfiguration + @ComponentScan 3가지 묶음으로 더욱 강력해진녀석입니다.


3. reactive web flux

reactive web flux 지원 (spring 5의 기능)

비동기 이벤트 처리가 클래스단위로 가능하여 고성능을 내게 해줍니다(nob blocking api 제공)

(spring boot2.0 이상부터)

spring boot는 즉 빠르고 쉽게 고성능 및 MSA를 가능하게 하는 프로젝트


Spring boot 세팅

시작하기 앞서 jdk 및 inteliJ의 설치과정은 생략합니다.

1. https://start.spring.io/ 접속해서 원하는 컴포넌트 선택후 Generate Project 클릭

(hello world를 위해 간단하게 Web만 선택)

그래들로 프로젝트 구성하기 위해서 꼭 위에 Maven→ Gradle로 변경후 generate




2.inteliJ 실행 file→open 압축해제한 폴더 열기



환경

java :jdk1.8.0

framework : spring boot 2.0(spring 5.0)

tool : inteliJ

build tool : gradle 4.5.1

3.gradle 설정파일 열기 build.gradle

auto import 설정 ok 하면 자동으로 gradle 파일이 변경될때마다 자동으로 빌드된다.

(만약 자동으로 import안된다면 오른쪽에 gradle버튼을 눌러 파란 버튼 Refresh all Gradle project 버튼 클릭 )


4. 그래들 빌드 확인




5. 프로젝트 실행



src/main/com/example/demo/DemoApplication → run (shift+f10)

6. 웹서버 확인



127.0.0.0.1:8080으로 확인해보면 아래와 같이 뜹니다 (컨트롤러 부분을 설정해주지 않아서 아무것도 안뜹니다.)

7. 컨트롤러 생성




어플리케이션 패키지에 컨트롤러 패키지를 만들어서 DemoController를 하나 만듭니다

(주의: SpringbootApplcation과 상위 패키지가 다를경우 ComponentScan으로 일일이 찾아줘야 하므로 같은 패키지에 위치시키는게 좋습니다.)

package com.example.demo.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class DemoController {
@GetMapping("/")
public String index() {
return "hello world";
}
}

(예전에는 RequestMapping으로 매핑했지만 최근 추세는 GetMapping, PostMapping등이 추가된 새 annotation이 추세인듯 합니다)

8. 브라우저 확인

정리

톰캣에 가볍게 hellow world를 찍는데 5분도 안걸렸습니다. 그만큼 간단하며 손쉽게 구현할수 있습니다.

또한 기존 spring + was 환경보다 spring boot에 있는 embedded tomcat은 기존 tomcat보다 3배이상 빠릅니다.

spring boot 2부터는 reactive 기능 추가로 기존보다 배이상의 성능을 끌어낼수 있으며 그래들 과의 궁합 또한 훌륭하며

msa 환경구축 및 spring cloud와 의 연동으로 기존 웹개발 환경에 새로운 생태계를 구축하였습니다.



Comments