[DEV] J-Jay

스프링과 스프링 부트 본문

Back-end/Spring

스프링과 스프링 부트

J-Jay 2023. 8. 30. 21:44
728x90

스프링의 등장

엔터프라이즈 애플리케이션이라는 용어가 있다.

웹 개발이 처음인 사람에게는 생소한 용어일텐데, 엔터프라이즈 애플리케이션은 대규모의 복잡한 데이터를 관리하는 애플리케이션을 말한다. 소프트웨어 분야가 발전하며 엔터프라이즈 애플리케이션은 점점 복잡해졌다.

예시로, 은행 시스템을 생각해보면 몇 천만의 사람이 한꺼번에 잔고 조회를 하고, 입금이나 출금 요청을 하고, 새로운 통장을 개설하기도 한다. 이렇듯 엔터프라이즈 애플리케이션은 많은 사용자의 요청을 동시에 처리해야 하므로 서버 성능과 안전성, 보안이 매우 중요하다.

그런데 이런 것들을 신경쓰면서 비즈니스 로직까지 개발하기에는 매우 어렵다.

누군가 엔터프라이즈 애플리케이션ㅇ르 위한 개발 환경을 제공해서 기능 개발에만 집중할 수 있다면 얼마나 좋을까?

 

이런 상황에서 등장한 것이 스프링 프레임워크다.

스프링 프레임워크는 앞서 언급한 서버 성능, 안전성, 보안을 매우 높은 수준으로 제공하는 도구이며, 이 덕분에 개발자들은 기능개발에 집중 할 수 있게 되었다.


스프링을 더 쉽게 만들어주는 스프링 부트

스프링은 장점이 많은 개발 도구이지만 설정이 매우 복잡하다는 단점이 있다. 

이런 단점을 보완하고자 만들어진게 스프링 부트 이다.

스프링 부트는 스프링 프레임워크를 더 쉽고 빠르게 이용할 수 있도록 만들어주는 도구이며 의존성 세트라고 불리는 starter를 사용해 간편하게 의존성을 사용하거나 관리할 수 있다.

스프링 부트는 개발자가 조금 더 비즈니스 로직 개발에만 집중할 수 있도록 만들어주는 도구이다.


스프링 부트의 주요 특징

  1. Tomcat, Jetty, UnderTow 같은 WAS(Web Application Server)가 내장되어 있어 따로 설치를 하지 않아도 독립적으로 실행 가능
  2. 빌드 구성을 단순화 하는 스프링 부트 스타터 제공
  3. XML 설정을 하지 않고 자바 코드로 모두 작성 가능
  4. JAR을 이용하여 JAVA 옵션만으로 배포 가능
  5. 애플리케이션의 모니터링 및 관리 도구인 Spring Actuarotr 제공

스프링 vs 스프링 부트

  • 구성의 차이
    스프링은 애플리케이션 개발에 필요한 환경을 수동으로 구성하고 정의해야 한다.
    하지만 스프링 부트는 스프링 코어와 스프링 MVC의 모든 기능을 자동으로 로드하므로 수동으로 개발 환경을 구성할 필요가 없다.
  • 내장 WAS의 유무
    스프링 애플리케이션은 일반적으로 Tomcat과 같은 WAS에서 배포된다. WAS란 웹 애플리케이션을 실행하기 위한 장치를 말한다. 스프링 부트는 WAS를 자체적으로 가지고 있다. 그래서 JAR 파일만 만들면 별도의 WAS 설정을 하지 않아도 애플리케이션을 실행할 수 있다.
  스프링 스프링 부트
목적 엔터프라이즈 애플리케이션 개발을 쉽게 스프링의 개발을 더 빠르고 쉽게
설정 파일 개발자가 수동으로 구성 자동 구성
XML 일부 파일은 XML로 직접 생성하고 관리 사용 안함
인메모리 데이터 베이스 지원 지원하지 않음 인메모리 데이터 베이스 자동 설정 지원
서버 프로젝트를 띄우는 서버를 별도 설정 내장형 서버를 제공해 별도 설정 불필요

 

 

 

 

'Back-end > Spring' 카테고리의 다른 글

스프링 Concept (2)  (0) 2023.08.31
스프링 Concept (1)  (0) 2023.08.30
Spring Boot 프로젝트 생성  (0) 2023.08.28
Build system의 Gradle과 Maven 차이  (0) 2023.08.28
Spring 이전에...  (0) 2023.03.30