Spring

[스프링부트] 스프링부트란 무엇인가

아윤_ 2023. 9. 28. 10:31

스프링부트란?

 

스프링부트(Spring Boot)는 자바의 웹 프레임워크로 기존 스프링 프레임워크(Spring Framework)에 톰캣 서버를 내장하고, 여러 편의 기능들을 추가하여 꾸준한 인기를 누리고 있는 프레임워크이다.

 

 

웹 프로그램을 쉽고 빠르게 만들어주는 프레임워크

 

스프링 부트는 웹 프로그램을 쉽고 빠르게 만들 수 있도록 도와주는 프레임워크이다.

 

웹 프레임워크

 

웹 프로그램을 만들기 위해서 웹 프레임워크가 없다면, 웹 프로그램을 위해 만들어야 할 기능이 정말 많다. 하지만, 웹 프레임워크를 사용하면 그런 기능들이 이미 만들어져 있기 때문에 웹 프레임워크에 있는 기능을 익혀서 사용하기만 하면 된다. 웹 프레임워크는 웹 프로그램을 만들기 위한 스타터 키트라고 생각하면 된다. 자바로 만들어진 웹 프레임워크 중 하나를 스프링 부트라 한다.

 

 

얼마나 빨리 만들 수 있을까

 

웹 브라우저에 'Hello World'를 출력하려면 다음과 같은 클래스 하나만 작성하면 된다. 기능에 대한 자세한 설명은 나중에 설명하도록 한다.

@Controller
public class HelloController{
	@GetMapping("/")
	@ResponseBody
	public String hello(){
		return "Hello World";
	}
}

 

 

스프링부트는 튼튼한 웹 프레임워크이다.

 

개발자가 웹 프로그램을 만들 때 가장 어렵게 느끼는 기능이 보안 기능이다. 스프링부트는 기본적으로 보안 공격을 잘 막아주기 때문에 튼튼한 웹 프레임워크이다. 스프링부트를 사용하면 다음과 같은 보안 공격에 대한 코드를 짤 필요가 없다.

 

SQL 인젝션: 악의적인 SQL을 주입하여 공격하는 방법
XSS: 자바 스크립트를 삽입해 공격하는 방법
CSRF: 위조된 요청을 보내는 공격 방법
클릭재킹: 사용자의 의도하지 않은 클릭을 유도하는 공격 방법

 

 

스프링부트는 여러 기능이 준비되어 있다.

 

스프링은 2012년에 등장하여 10년 이상 그 자리를 유지하고 있다. 그동안 무수히 많은 기능들이 추가되고 다듬어졌기 때문에 스프링부트에는 우리가 원하는 웹 프로그램 개발을 위한 도구와 기능들이 대부분 존재한다.

 

 

스프링부트는 WAS가 따로 필요 없다.

 

스프링부트 대신 스프링만 사용하여 웹 애플리케이션을 개발한다면, 웹 애플리케이션을 실행할 수 있는 톰캣과 같은 WAS(Web Applicaiton Server)가 필요하다. 하지만, 스프링부트에는 톰캣 서버가 내장되어 있고 설정도 자동 적용되므로 WAS에 대해 신경 쓸 필요가 없다. 또한, 배포되는 jar 파일에도 톰캣 서버가 내장되기 때문에 다른 WAS들로 인해 발생하는 문제들이 사라진다.

 

※ 참고
스프링부트로 작성하더라도 톰캣 내장 서버가 아닌 다른 WAS를 사용할 수 있다.

 

 

스프링부트는 설정이 쉽다.

 

스프링부트는 스프링의 복잡한 설정을 자동화하고 단순화하여 누구나 쉽게 스프링을 사용할 수 있게 만들었다.