[Spring] 스프링과 스프링 부트의 차이점

김형준 Kim Hyeong Jun·2023년 3월 16일
0

Spring

엔터프라이즈용 JAVA 애플리케이션 개발을 편하게 할 수 있게 해주는 오픈소스 경량급 애플리케이션 프레임워크

특징

POJO 프로그래밍을 지향

스프링의 가장 큰 특징으로 볼 수 있습니다. 여기서 POJO란, Plain Old Java Object, 즉 순수 Java만을 통해서 생성한 객체를 의미합니다.
그렇다면 순수 Java만을 통해 객체를 만든다는게 무슨 의미일까요?

순수 Java만을 사용한다는 것은 Java 및 Java의 스펙에 정의된 기술만 사용한다라는 의미입니다. 즉, 어떤 객체가 외부의 라이브러리나 외부의 모듈을 가져와서 사용하고 있다면, 그 객체는 POJO라고 할 수 없습니다.

POJO는 왜 중요한가?

POJO는 순수 Java만을 사용하여 만득 객체이므로 특정 기술이나 환경에 종속되지 않습니다. 따라서, 외부 기술이나 규약의 변화에 얽매이지 않아, 보다 유연하게 변화와 확정에 대처할 수 있다는 장점이 있습니다. 이처럼 비즈니스 로직을 구현하는 데에 POJO를 적극적으로 활용하는 프로그래밍 패러다임을 POJO 프로그래밍이라고 합니다.

Spring Boot

스프링은 기존 기술의 복잡성을 크게 줄인 프레임워크이지만, 그럼에도 불구하고 스프링을 사용하기 위해서는 여러가지 설정이 필요합니다. 스프링 부트는 이러한 기존의 스프링이 가지고 있는 복잡하고 반복되는 설정을 대신 해주는 별도의 프레임워크입니다.

기존 스프링을 통해 개발을 하고 배포를 하려면 별도의 외장 웹 서버를 설치하고, 프로젝트 .war 파일로 빌드하여 배포를 진행하였습니다. 이러한 방식은 처리 속도가 느리며 번거롭다는 단점을 가지고 있습니다.
반면, 스프링 부트는 자체적인 웹 서버를 내장하고 있어(Tomcat), 빠르고 간편하게 배포를 진행할 수 있습니다. 또한, 독립적으로 실행 가능한 .jar 파일로 프로젝트를 빌드할 수 있어, 클라우드 서비스 및 도커와 같은 가상화 환경에 빠르게 배포할 수 있습니다.


Reference

스프링과 스프링부트(Spring Boot)ㅣ정의, 특징, 사용 이유, 생성 방법
[Spring] Spring과 Spring Boot의 차이점, Hibernate, Bean Scope, Bean 생명주기

profile
I want be a developer🙂

0개의 댓글