Spring 그리고 Spring Boot

2024. 1. 30. 20:30백엔드/Spring Boot

자바로 API 만드실 때 스프링/스프링 부트를 많이 쓰실 텐데요! 다들 스프링과 스프링 부트의 차이! 알고 계신가요?

오늘은 스프링과 스프링 부트의 차이점에 대하여 알아보겠습니다🔥 

 

# Spring(Spring Framework)

  • 자바 언어로 개발된 애플리케이션을 구축하기 위한 오픈 소스 프레임워크
  • 경량 컨테이너, 의존성 주입, 관점 지향 프로그래밍, 웹 개발 등의 기능을 제공하여 효율적으로 애플리케이션 개발 가능 
    • 경량 컨테이너 : 객체의 생성과 생명주기를 관리하는데 도움을 주는 프레임워크
    • 의존성 주입(Dependency Injection) : 객체가 필요로 하는 의존성을 외부에서 주입하여 결합도를 낮추는 디자인 패턴
    • 관점 지향 프로그래밍(AOP) : 비즈니스 로직을 모듈화하여 코드 중복을 줄이는 프로그래밍 접근 방식
  • JDBC, JPA, Hibernate, RESTful 웹 서비스 등 다양한 기술과의 통합을 지원하여 개발 생산성을 높여 유지 보수성 향상
  • 내장 서버를 제공하지 않아 별도의 서버에 수동으로 배포해야 한다는 문제점과, 다양한 의존성을 포함하고 있어 프로젝트의 복잡성이 증가된다는 단점 존재

 

# Spirng Boot

  • 스프링 프레임워크의 기능을 확장하여 쉽게 스프링 기반의 애플리케이션을 개발할 수 있도록 개발된 프레임워크
  • 스프링 부트는 Convention over Configuration 원칙을 따르며, 자동 구성(Auto Configuration)을 통해 개발자가 별도의 설정 없이도 기본적인 애플리케이션을 빠르게 구축할 수 있도록 지원
  • 내장 서버를 제공하여 애플리케이션을 독립적으로 실행하고 배포 가능
  • 일부 의존성의 버전을 자동으로 업데이트하여 의존성 간의 충돌이 발생 할 수 있음
  • 대규모 애플리케이션의 경우 외부 서버를 사용해야 함

 

# Spring VS Spring Boot 의 차이점을 정리해보자

  Spring Framework Spring Boot
초기 학습 난이도 어렵다 쉽다
배포 방식 WAR 파일을 빌드하고 외부 서버에 배포 내장 서버를 제공하여 독립적으로 배포 가능
의존성 관리 모든 의존성을 수동으로 관리 자동으로 일반적인 의존성을 제공하고 의존성 관리를 단순화
초기 설정 초기 설정 및 구성이 복잡함 자동 구성을 통해 설정을 단순화