728x90
Spring Framework
- 2002 년에 처음 발표된 Java 기반 애플리케이션 개발을 지원하는 오픈소스 애플리케이션 프레임워크
- 모듈화된 아키텍쳐로 다양한 기능 제공
장점
IoC 컨테이너
- 의존성 주입을 통해 객체 간의 의존성을 관리AOP
- AOP 를 지원하여 애플리케이션의 핵심 비즈니스 로직과 부가적인 기능(로깅, 트랜잭션 관리 등)을 분리하여 모듈화 할 수 있음.데이터 액세스
- JDBC, ORM, 트랜잭션 관리MVC 프레임워크
- Spring MVC 로 웹 애플리케이션 개발 가능함.통합
- JPA, JMS, 웹 서비스 등의 기술을 통합 지원DI
- 의존성 주입
단점
설정의 복잡성
- XML 또는 자바 기반의 설정을 사용하여 각 기능을 설정해야함.
- 여러 XML 파일 및 설정 파일로 인해 설정이 복잡해질 수 있음.
높은 초기 학습 난이도
- 학습이 필요한 부분이 많음.
의존성 관리 문제
- 의존성 관리를 위해서 XML 설정 파일에 많은 수의 Bean 을 등록해야함.
- 코드의 가독성을 떨어뜨리고, 의존성 관리가 어려워질 수 있음.
별도 WAS 서버 구성의 어려움
- 별도의 WAS 를 설치하고 설정해야함.
- 애플리케이션을 서비스 하기 위해서 서버에 수동으로 배포해야하는 번거로움이 있음.
Spring Boot
- 2014년에 발표된 Spring 기반 프레임워크
- 빠르고 간편하게 Spring 애플리케이션을 개발할 수 있도록 설계됨.
특징
설정 간편
- Spring 과 다르게 XML 설정이 필요없고, 최소한의 설정으로 Spring 을 사용할 수 있음.
내장 서버
- 내장 서버(Tomcat, Jetty, Undertow) 를 제공하여 별도의 서버 설정 없이 애플리케이션을 실행할 수 있음.
운영 편의성
- 모니터링, 로깅, 보안 설정 등 운영에 필요한 기능을 제공함.
단점
제한된 설정 제어
- 자동 설정을 사용하는 경우 모든 설정을 정확히 제어하기 어려움
- 특정 상황에서는 자동 설정이 과도하거나 불충분할 수 있음.
내장 서버의 단점
- 버그나 보안 이슈가 발생할 경우 직접 해결해야함.
- WAR 패키징을 사용하는 전통적인 배포 환경과의 호환성이 떨어짐
자동 구성의 복잡성
- 자동 구성이 의도대로 작동하지 않는 경우 디버깅이 어려울 수 있음.
- 애플리케이션 크기가 커질 수록 자동 구성된 설정을 관리하기 어려워짐.
차이점
- 설정 방식
- Spring : 수동 설정 필요(XML/ 자바 Configuration)
- Spring Boot : 자동 설정(Auto Configuration)
- 프로젝트 구조
- Spring : 여러 모듈과 서브 프로젝트로 구성하는 경우가 많음.
- Spring Boot : 스타터 프로젝트로 간단하게 구성가능
- 배포 방식
- Spring : WAR 파일로 패키징하여 외부 웹 서버에 배포
- Spring Boot : JAR 파일로 패키징하여 내장 서버로 실행
- 개발 생산성
- Spring : 설정에 시간이 더 소요될 수 있음.
- Spring Boot : 대부분의 기능을 기본값으로 제공해 빠른 개발 가능
Spring Framework 는 더 세밀한 제어가 필요하거나 대규모 프로젝트에서 유연성이 중요한 경우에 적합함.
Spring Boot 는 신속한 개발 및 프로덕션 환경 준비가 필요한 소규모 프로젝트나 마이크로 서비스에 적합함.
728x90
'99클럽 TIL' 카테고리의 다른 글
29일 차 TIL Spring Interceptor (0) | 2024.05.16 |
---|---|
28일 차 TIL Spring Controller로 들어오는 입력값에 대한 Validation 방법 (0) | 2024.05.15 |
26일차 TIL Spring DL 이란 (0) | 2024.05.13 |
25일차 TIL Spring Container (0) | 2024.05.12 |
24일차 TIL Spring Bean (0) | 2024.05.11 |
Comment