spring 프레임워크와 spring boot가 뭐가 다른거지?
spring이나 spring boot로 개발을하며 위의 질문에 대해 많이들 고민하고 찾아보셨을 것이라고 생각합니다.
이 차이점을 알아보기 위해서는 먼저 spring의 등장 배경부터 알아봐야합니다.
엔터프라이즈 애플리케이션이란?
=> 대규모의 복잡한 데이터를 관리하는 애플리케이션
소프트웨어 분야가 발전하면서 대규모의 데이터관리 애플리케이션은 더 복잡해지고 거대해졌습니다.
사용자들이 늘어날수록 많은 요청들을 동시에 처리해야하기 때문에 서버의 성능과 안전성, 보안까지 중요해졌죠.
그리고 개발자들에게는 이런 부분들까지 신경쓰며 기능을 개발하기에 어려움이 따랐습니다.
"이런 엔터프라이즈 애플리케이션 개발을 위한 환경이 있었으면 좋겠다."
"개발자들이 기능 개발에만 집중할 수 있다면 좋겠다"
이런 고충들속에서 나온 것이 바로 스프링 프레임워크입니다.
스프링은 서버 서능, 안정성, 보안이 매우 높은 수준으로 제공되는 도구이죠.
덕분에 개발자들이 기능 개발에 집중할 수 있게 되엇습니다.
스프링이라는 유용한 개발환경 제공 프레임워크로 개발자들이 기능 개발에 몰두하기가 쉬워진 것은 사실입니다.
그렇지만 이런 스프링도 단점이 존재했죠.
바로 설정이 매우 복잡하다는 것입니다.
이런 단점을 보완하고자 이후에 나온 것이 스프링 부트입니다.
스프링 부트는 스프링을 더 쉽고 빠르게 이용할 수 있도록 만들어주는 도구입니다.
스프링 프로젝트를 빠르게 설정할 수 있고 의존성을 간편하게 사용하거나 관리할 수 있게 해줍니다.
결국 스프링 부트도 개발자가 기능 개발에 더 집중할 수 있도록 해주는 편리한 도구인 셈이죠.
그렇지만 확실히 짚고 넘어가야 할 부분은 스프링 부트는 스프링을 더 편하게 사용할 수 있도록 해주는 스프링에 속한 도구지, 스프링과 다른 도구는 아닙니다.
이런 스프링 부트의 주요 특징들에는 어떤 것들이 있을까요?
웹 애플리케이션 서버(WAS)가 내장되어 있어서 따로 설치하지 않아도 독립적 실행 가능
빌드 구성을 단순화하는 스프링 부트 스타터 제공
XML 설정을 하지 않고 자바 코드로 모두 작성 가능
JAR를 이용해 자바 옵션만으로 배포 가능
애플리케이션의 모니터링 및 관리 도구인 Spring actuator를 제공
1번. 구성의 차이
2번. 내장 WAS의 유무
표
스프링 | 스프링 부트 | |
---|---|---|
목적 | 대용량 애플리케이션 개발을 더 쉽게 하기 위함 | 스프링 개발을 더 빠르고 쉽게 하기 위함 |
설정파일 | 개발자가 수동으로 구성 | 자동 구성 |
XML | 일부 파일은 XML로 직접 생성하고 관리 | 사용하지 않음 |
인메모리 데이터베이스 지원 | 지원X | 인메모리 데이터베이스 자동 설정 지원 |
서버 | 톰캣, 제티 등 별도로 수동 설정 | 내장형 서버를 제공해 별도 설정 필요X |