[spring] spring vs spring boot

CHOI IN HO·2023년 11월 23일
0

SPRING

목록 보기
3/45

오늘은 spring과 spring boot에 대해서 알아보겠다.

나는 Java를 이용한 프레임워크 spring과 spring boot을 사용해봤다. 그럼 둘의 차이점은 무엇일까?

Spring 이란?


출처: 스프림 홈페이지

스프링 프레임 워크는 JAVA 기반 애플리케이션 개발을 지원하는 오픈소스 애플리케이션 프레임워크로 간단히 SPRING이라고도 불린다. 순수 자바 객체만을 사용하여 복잡성을 제거하고, 단순하고 가벼운 코드로 기업용 애플리케이션을 개발하기 위한 목적으로 개발된 프레임워크이다.

스프링의 문제점

설정의 복잡성

스프링은 강력한 기능을 제공하기 위해 많은 설정과 구성이 필요합니다. 이는 초기 설정의 복잡성을 증가시킬 수 있고, 초보자에게는 어렵게 느껴질 수 있습니다. 개발자들이 애플리케이션 컨텍스트 설정, 빈 정의, 다양한 컴포넌트 구성 등을 위해 많은 설정 코드를 작성해야 합니다.

높은 초기 학습 난이도

스프링은 다른 프레임워크에 비해 학습이 필요한 부분이 많습니다. 다양한 개념과 기능을 이해하고 사용하기 위해 시간과 노력이 필요할 수 있습니다.

의존성 관리 문제

전통적인 스프링 프레임워크에서는 여러 의존성과 그들의 버전을 관리하는 것이 복잡할 수 있습니다. 스프링 레거시에서는 의존성 주입(Dependency Injection)을 구현하기 위해 XML 설정 파일에 많은 수의 빈(Bean)을 등록해야 합니다. 이는 코드의 가독성을 떨어뜨리고, 의존성 관리가 어려워질 수 있습니다

별도 WAS 서버 구성의 번거로움

스프링을 웹상에서 사용하기 위해서는 별도의 Web Application Server(WAS)를 설치하고, 설정해야 합니다. 또한, 애플리케이션을 서비스하기 위해서 별도의 서버에 수동으로 배포해야 하는 번거로움이 있습니다.

Spring boot이란?

spring boot은 이러한 spring 의 문제를 해결하고 개발자들이 더 쉽고 빠르게 스프링 애플리케이션을 개발하도록 도와주기 위해 개발되었다.

쉽게 말해 "설정을 쉽게 해주는 프레임워크"이다.

Spring boot의 특징

간결한 설정

스프링 부트는 번거로운 XML 설정이 필요 없으며, 최소한의 설정으로 Spring을 사용할 수 있고, 기본적인 설정을 자동으로 처리하므로 개발자가 많은 설정 작업을 하지 않아도 됩니다. 설정으로 인한 불편사항을 해소하여 개발자는 애플리케이션 개발에 집중할 수 있습니다.

내장 서버

스프링 부트는 내장된 서버(내장 Tomcat, Jetty, Undertow)를 제공하여 별도의 서버 설정 없이 애플리케이션을 실행할 수 있습니다. 배포를 위해 War 파일을 생성해서 Tomcat에 배포할 필요 없으며, JAR 파일에는 모든 의존성 라이브러리가 포함되어 있어 외부 서버 없이도 애플리케이션을 실행할 수 있습니다. 이는 애플리케이션의 배포와 관리를 간편하게 만들어 줍니다.

의존성 관리 간소화

스프링 부트는 여러 3rd party 라이브러리를 사용할 때, 발생하는 라이브러리 버전 충돌로 인한 문제를 해결하기 위해서, 이미 테스트된 여러 라이브러리들의 묶음 패키지를 제공합니다.
3rd party 의존성 관리를 용이하게 하기 위한 ‘starter’ 의존성 통합 모듈을 제공하여 Maven/Gradel 설정 시 버전 관리가 간편합니다. 스프링 부트에서 제공하는 의존성 세트를 통해 개발자는 버전 충돌이나 복잡한 의존성 설정에 대해 걱정하지 않고 필요한 의존성을 쉽게 지정할 수 있습니다.

운영 편의성

스프링 부트는 애플리케이션의 상태 모니터링, 로깅, 보안 설정 등 운영에 필요한 기능들을 제공합니다. 이를 통해 애플리케이션의 운영과 관리가 편리해지고 안정성이 향상됩니다.

profile
개발자기 되기 위해선 무엇이든!

0개의 댓글