본문 바로가기
자바,스프링 - Java,Spring Framework

[Spring] Spring boot란?, 스프링부트란, 스프링부트와 스프링의 차이, 스프링부트 실행하기

by devscb 2022. 7. 22.
반응형

Spring boot란?, 스프링부트란, 스프링부트와 스프링의 차이, 스프링부트 실행하기





  spring boot란? 스프링부트란?

이전에 스프링이 무엇인지에 대해 https://devscb.tistory.com/111?category=1025931 에서 살펴보았었습니다.
웹서버 개발을 쉽게 하기위해 탄생한 프레임워크인데요, 개발하다보니 사람들이 스프링도 불편한점이 있다고 생각하게 되었습니다.
바로 수많은 설정파일을 만들고, 설정해줘야하는 불편함이 있었는데요,
이를 비롯한 여러 불편한점들을 개선하고, 여러 편의기능을 넣어서 스프링 부트가 탄생되었습니다.
스프링 부트를 한마디로 표현한다면 "더 개발하기 쉬운 스프링" 이라 표현할 수 있습니다.

 

  spring boot (스프링부트)의 특징


1. 스프링 부트는 독립적으로 실행할 수 있는 production 등급의 스프링 기반의 애플리케이션을 쉽게 만들 수 있습니다.

2. tomcat / Jetty 같은 servlet container를 자체적으로 내장하고 있스니다.
WAR파일을 따로 만들지 않아도 되며, servlet container를 따로 설치하지 않고도 실행가능합니다.

3. 스프링과 써트파티 라이브러리에 대한 설정이 자동으로 설정되어있습니다.

4. 헬스체크나 설정값 등의 모니터링 메트릭 항목들을 제공해줍니다.

5. XML 코드를 사용하지 않아도 개발할 수 있습니다.


  spring boot와 spring의 차이


Spring boot와 Spring 의 차이를 정리해보면 대표적으로 아래와 같습니다.

 




  spring boot 실행하기


spring boot 실행방법을 소개해보고자합니다.
우선, spring boot 기반의 소스를 다운받기 위한 방법은 아래 블로그를 참고하여 설치하면 됩니다.
https://devscb.tistory.com/115

요약하면, https://start.spring.io/ 를 들어가서 설정값을 입력후, GENERATE 로 파일을 다운받습니다.
추가적으로 spring boot를 실행하기전, 설정하신 Java 버전이 셋업되어 있어야 합니다.

저의 경우는 아래와 같이 셋팅하여 다운받았습니다.
Project - Maven Project
Language - Java
Spring Boot - 3.0.0 (SNAPSHOT)
Packaging - Jar
Java - 8
Dependencies - Spring Web, MyBatis Fraemwork



하단의 GENERATE 버튼을 누르면
파일이 다운로드되고, 다운로드하면 demo.zip 파일이 다운받아집니다.

 

그리고 IDE에서 import하면 되는데요, 저의 경우에는 이클립스를 사용해보겠습니다.

이클립스 (eclipse ) 는 https://www.eclipse.org/downloads/ 에서 다운로드 받을 수 있습니다

 

 

이클립스를 열어 File 메뉴의 Import를 눌러줍니다.

 

 

 

그 다음, Maven > Existing Maven Projects 를 선택해줍니다.

 

다음 나오는 화면에서는 FINISH를 눌러줍니다.

 

 

 

 

 

좌측의 Project Explorer 에서 src > main > java > com > example > demo 순서로 폴더를 더블클릭하여 폴더 안의 내용을 펼쳐줍니다.

 

그 다음, DemoApplication.java의 @SpringBootApplication 부분에 (exclude = {DataSourceAutoConfiguration.class }) 를 써줍니다.

(Database를 사용하지 않겠다는 의미입니다)

 

전체 소스는 아래와 같이 됩니다.

 

package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;


@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class })
public class DemoApplication {

	public static void main(String[] args) {
		SpringApplication.run(DemoApplication.class, args);
	}

}
 




 

 

 

그 다음, DemoApplication.java를 오른쪽 클릭하여 Run As > Java Application 을 클릭해줍니다.

 

 

그러면 아래와 같이 Spring 이 시작되는 로그가 출력이 되고,

맨 마지막에 Completed initialization in xx ms 라고 정상적으로 실행되었다고 뜨게 됩니다.

 

 

아래와 같이 포트가 8080으로 서버가 정상적으로 구동되었다는 로그를 확인했으므로 웹브라우저에서 http://localhost:8080 을 입력해봅니다.

 


웹브라우저를 열어 확인합니다.

 

그러면 아래와 같이 화면이 뜨는데요, 아래 메시지는 추가적으로 URL에 매핑된 view를 매핑한 코드를 작성하지 않아서 발생하는 메시지 입니다.

 

스프링부트는 정상적으로 동작한것이니 안심하세요!



 

 

만일, 정상적으로 뜨는 모습을 보고 싶다면, 아래와 같이 Controller.java 파일을 만들고 아래와 같이 코딩한 후, 재시작해봅니다.

 

 

 

 

 

package com.example.demo;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class Controller{
	@RequestMapping("/")
	public String test() {
		return "test";
	}
	
}


 



 

 

그러면 웹 브라우저에서는 아래와 같이 뜨게 됩니다.

 

 

 총평


맨 처음 spring framework를 대면하게 되었을때, 뭐 이렇게 복잡한 프레임워크가 있어? 라는 생각을 했었던 기억이 있습니다.
그러나 여러 spring 프로젝트를 진행해보면서 이렇게 체계적인 프레임워크가 있다는 것을 느꼈었습니다.
그러다 또 다시한번 개발할 때마다 초기 셋업에 신경써야하는게 많다는게 좀 답답한면이 있었다는 생각을 했습니다.
그러고나서 어느순간부터 spring boot가 생겼었습니다.
1.0.0 버전을 사용해봤을때는 뭔가 안정적이지 않은 느낌이 들어서 사용하기에 꺼려졌지만,
지금 글을 쓰고 있는 2022년에는 3버전까지 나와있고, 여러 블로그들을 보면 다른 회사들에서도 많이 사용하고 있어 안정성이 검증된것으로 느껴집니다.
그래서 현재는 저도 Java로 새로운 프로젝트를 하게 될 경우, 보통 스프링 부트를 기반으로 개발합니다.
Java일 경우에만 쓴다고 하는 이유는, 다른 언어를 선택하는 경우에도 있기 때문입니다.

#spring,#boot,#springboot,#springframework,#스프링,#스프링프레임워크,#부트,#스프링부트,실행하기

https://devscb.com/post/120

 

[Spring] What is Spring boot?, What is Spring boot, Difference between Spring boot and Spring, Running Spring boot

What is Spring boot?, What is Spring boot, Difference between Spring boot and Spring, Running Spring boot What is spring boot? What is Spring Boot?We previously looked at what Spring is at https://de

devscb.com

 

728x90
반응형

댓글