스프링 프레임워크와 스프링 부트Framework/Spring2024. 1. 3. 14:35
Table of Contents
728x90
1. 스프링 프레임워크(Spring Framework)는 무엇일까?
스프링 프레임워크는 자바 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크로, 2003년에 처음 출시되었다고 한다.
엔터프라이즈급 애플리케이션 개발을 위한 포괄적인 솔루션을 제공하고 의존성 주입(Dependency Injection), AOP(Aspect-Oriented Programming), 트랜잭션 관리, JDBC 등의 기능을 포함하고 있다.
장점
- 유연하고 강력한 프레임워크 : 스프링은 많은 종류의 프로젝트에 적용할 수 있음, 다양한 환경에서 동작이 가능하다.
- IoC(Inversion of Control)와 DI(Dependency Injection)를 통한 느슨한 결합 : 이를 통해 테스트 용이성과 코드의 재사용성이 향상된다.
- AOP 지원 : 관점 지향 프로그래밍을 통해 코드의 모듈화를 증가시킨다.
- 풍부한 API 지원 : JDBC, JMS, JPA 등 다양한 자바 EE API를 쉽게 사용할 수 있다.
단점
- 설정의 복잡성 : 스프링 프레임워크는 많은 설정이 필요하며, 이로 인해 초기에 학습해야할 것들이 꽤 많다.
- 높은 종속성 : 스프링 프레임워크를 사용하면, 일반적으로 애플리케이션의 전반에 걸쳐 스프링의 요소를 사용하게 되므로, 다른 프레임워크로의 이전이 어렵다.
2. 스프링 부트(Spring Boot)는 무엇일까?
스프링 부트는 스프링 프레임워크를 기반으로 한 독립적인(stand-alone), 실행 가능한 애플리케이션을 생성하는 것을 목표로 하는 프레임워크다. '의견을 갖는(Opinionated)' 설정을 제공하여 개발자가 빠르게 애플리케이션을 개발하고 배포할 수 있도록 지원해준다.
장점
- 간결한 설정 : 스프링 부트는 자동 설정고 스타터 의존성을 통해 설정의 복잡성을 크게 줄여준다.
- 내장 서버 제공 : 스프링 부트는 내장 Tomcat, Jetty, Undertow 등의 서버를 제공하여 별도의 웹 서버 설치 없이 웹 애플리케이션을 싱핼할 수 있다.
- 독립적인 애플리케이션 : 스프링 부트는 실행 가능한 'fat' JARs 또는 WARs를 생성하여, 애플리케이션의 배포와 이동이 쉽다.
단점
- '의견을 갖는' 설정 : 스프링 부트의 자동 설정은 개발의 편의성을 제공하지만, 특정 설정을 변경하고 싶을 때 어려움을 겪을 수 있다.
- 무거운 애플리케이션 : 'fat' JARs 또는 WARs의 크기가 크기 때문에, 애플리케이션의 시작 시간이 느려질 수 있다.
3. 스프링 프레임워크와 스프링 부트의 차이점
- 스프링 프레임워크는 복잡한 설정과 높은 유연성을 제공하는 반면, 스프링 부트는 설정의 복잡성을 줄이고 빠른 개발이 가능하도록 해주는 것에 중점을 둔다.
- 스프링 프레임워크는 개발자가 직접 모든 설정을 관리해야 하지만, 스프링 부트는 많은 설정을 자동으로 처리하여 개발 과정을 간소화 할 수 있다.
- 스프링 부트는 스프링 프레임워크의 'opinionated'버전으로 볼 수 있으며, 스프링 프레임워크 위에서 동작한다. 따라서 스프링 부트는 스프링 프레임워크의 모든 기능을 활용할 수 있다.
728x90
'Framework > Spring' 카테고리의 다른 글
dao, dto, vo가 뭐길래 폴더 구조에 꼭 있는걸까 (0) | 2024.01.16 |
---|---|
ERD 그게 뭔데 날 힘들게 해 (1) | 2024.01.13 |
VScode와 intelliJ 사용할 때 로그 처리 방식이 왜 다를까? (0) | 2023.12.30 |
Gradle이 Maven 대신에 많이 사용되는 이유는 뭘까? (0) | 2023.12.21 |
상속과 인터페이스는 언제 써야될까...? (0) | 2023.12.08 |
@Marty_ :: 소리 지르고 싶다.
쓰임 있는 사람이 되기 위해 노력 중입니다.