스프링부트가 무엇인지에 대한 글을 한번 적어보겠습니다.
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) 말고는
건드는 것이 없을 것 입니다.. 개발 편의성이 더 좋아졌습니다.