[Springboot] 스프링 부트란?

728x90

스프링부트가 무엇인지에 대한 글을 한번 적어보겠습니다.

 

1) 내가 생각하는 스프링부트 ❓

스프링 프레임워크를 써본사람은 스프링의 명확한 단점을 알 거라고 생각합니다. 

바로 기존 스프링은, 서버 설정 및 여러 세팅을 귀찮게 프로젝트 생성시 매번 개발자가 직접 해줘야 합니다ㅠㅠ

 

그러나 스프링부트는 , 스프링을 쓸 때하는 이런 세팅을 할 필요가 없죠 

스프링부트는 우리가 개발하는데 있어 더 편한 환경을 제공합니다.

 

1️⃣ 톰캣 서버를 내장하고 있다.

  • 기존 스프링은, WAS를 내장하고 있지않아, 우리가 직접 WAS인 아파치 톰캣을 설정을 해줘야 했습니다
    • 그러나 스프링부트는 직접 내장하고 있어 우리가 따로 서버를 설정할 필요가 없습니다.

2️⃣ 기존 스프링보다 설정이 쉽다

 

3️⃣ 기본적인 보안에 좋다

 

4️⃣ 스프링에 없는 다양한 기능이 있다

 

 

 


 

즉, 스프링부트는 웹 프로그램을 쉽고 빠르게 만들어주는 웹 프레임워크 입니다.

 

웹 프로그램을 동작시켜주는 프레임워크는 여러가지가 있다

자바스크립트의 Nodejs, 파이썬은 Django, 자바는 Spring 이 있다

 

예를들어 쿠키,세션 처리를 해야하는 로그인/로그아웃 기능, 권한 처리, DB처리등 웹에서 동작시켜야하는

여러가지 기능이 있다.

웹 프레임워크를 사용하면은 이런 기능들을 일일이 만들필요가 없다.

이미 만들어져있기 때문에, 우리는 이 프레임워크을 사용법만 알면은 그걸 가져다가 쓰면 되는 것이다. 

 

쉽게 말해, 프레임워크란, 웹 프로그램을 만들어주는 툴이고, 이 툴을 사용방법만 알면은 우리가 원하는걸 쉽게 

할 수 있다는 말입니다.

 

단점이라고 하면, 프레임워크는 규칙이 있기 때문에 그 규칙에 맞춰서 개발을 해야하고, 그 규칙을 벗어날 수 가 없다.

그러므로 규칙만 익히고, 지키면은 개발편의성에 정말 도움이 많이 됩니다.

 

 

2) 스프링 부트의 장점

스프링부트는 보안에 편의성을 제공한다.

웹 보안을 잘 모르는 사람들 또한, 스프링 프레임워크를 쓰면 기본적으로 어느정도는 보안이 됩니다.

Ex) SQL인젝션, XSS, CSRF 등 다양한 보안 공격을 기본적으로 막아줍니다.

즉, 스프링부트를 사용하면은, 이 보안에 대한 방어 코드를 작성할 필요가 없습니다.

 

다양한 기능 내장

로그인, 페이징 등 게시판 정도에 사용하는 기본적인 기능은 다 내장이 되어있습니다.

자세한건 구글에 검색하면 잘 나올 것입니다.

즉 이미 만들어져있는게 무엇인지를 알면, 우리가 새로 만드는 번거로움을 없애준다는 것 입니다.

 

WAS내장

스프링은 WAS인 아파치톰캣을 직접 추가해서 서버를 구동해야 하는데

스프링부트는 그런 과정이 필요가 없이, 이미 스프링부트 안에 추가가 되어있고 설정도 자동 적용되어 있기

때문에, 우리는 왠만하면WAS를 건들필요가 없을 것 입니다. 

(특수한 상황이 있거나, 아파치 톰캣WAS를 사용안하면은 따로 추가를 할 수는 있습니다.)

배포되는 jar,war 파일에도 톰캣서버가 내장되어 실행되므로 서로 다른 WAS들로 인해 발생되는 문제들도 없습니다.

 

설정이 쉽다

기존 스프링은 프로젝트 생성 후 기본적으로 해줘야하는 설정이 많았지만, 스프링 부트는 yml, gradle(maven) 말고는 

건드는 것이 없을 것 입니다.. 개발 편의성이 더 좋아졌습니다.

728x90