스프링과 스프링부트의 주요 차이점
Spring Framework는 Java에서 애플리케이션 개발을 돕는 가장 인기있는 프레임 워크 중 하나입니다. 그것은 다양한 방식의 객체 또는 빈 관계를 유지했습니다. 실제로 DI (Dependency Injection) 또는 IOC (Inversion of Control)에 매우 유용합니다. 느슨하게 결합 된 응용 프로그램을 개발하는 데 큰 도움이되었으며, 이는 자동으로 모든 Java 응용 프로그램 의 적절한 단위 테스트에 도움이되었습니다.
Spring Framework를 포함하여 다른 많은 기능이 있으며 어떤 constant에서도 매우 인기가 있습니다. 이러한 기능은 거의 20 개의 모듈로 나뉘어 모든 Java 응용 프로그램에서 매우 일반적으로 발생하는 많은 문제를 해결하는 데 도움이됩니다. 널리 사용되는 몇 가지 모듈은 다음과 같습니다.
1. 스프링 JDBC
2. 스프링 MVC
3. 스프링 AOP
4. 스프링 ORM
5. 스프링 JMS
6. 스프링 테스트
7. 스프링 Expression Language
- Spring JDBC는 스프링 애플리케이션에서 가장 일반적인 기능 중 하나입니다. RDBMS 데이터베이스 에서 데이터를 가져 오려고 할 때마다 스프링 기본 JDBC 프레임 워크를 사용할 수 있습니다.
- Spring MVC는 주로 스프링을 사용하여 웹 애플리케이션을 개발하는데 사용되는 모델, 뷰 및 컨트롤러 디자인 패턴을 나타냅니다.
- AOP (Aspect-Oriented Program)는 주로 Java 응용 프로그램과의 보안 또는 로깅 통합, 특수한 기능과 같은 모든 측면에 사용되며,이 기능은 응용 프로그램에서 메소드 리턴 또는 예외가 발생한 후 메소드 호출 전후에 호출 될 수 있습니다. 스프링은 모든 ORM 툴과 쉽게 통합 될 수 있습니다. 테스트 목적 및 표현 언어에 대한 스프링 테스트는 뷰 프리젠 테이션에 사용됩니다.
- 스프링 부트는 실제로 스프링의 모든 기본 기능을 기반으로합니다. Core Spring 및 MVC는 모든 Java 애플리케이션의 모든 필수 기능을 처리 할 수 있습니다. 복잡성과 구성에 따라 스프링 부트는 스프링 구성 관련 복잡성을 줄이는 데 많은 도움이됩니다.
스프링과 스프링부트의 주요 차이점
1. Spring은 주로 핵심 기능과 개발자가 수동으로 구성하고 요구 사항에 따라 응용 프로그램에서 사용해야하는 기능을 정의해야하는 MVC 기능에 집중되어 있습니다. 스프링 부트는 자동으로 스프링 코어 및 MVC의 모든 기능을 로드합니다. 개발자는 특정 구성을 수동으로 정의할 필요가 없습니다.
2. Spring core에는 다양한 용도로 사용하고 Java 응용 프로그램 요구 사항에 따라 일부 공통 유틸리티를 해결할 수있는 여러 모듈이 있습니다. Spring JDBC , MVC, AOP, ORM 등과 같은 모듈 은 프로젝트 요구 사항에 따라 모든 측면에서 매우 유용합니다. 이러한 유틸리티는 모두 시스템 또는 프로젝트 요구 사항에 따라 올바르게 구성하고 활용할 수 있습니다. Spring Boot는 이러한 모든 요구 사항을 @SpringBootConfiguration으로 쉽게 정의 할 수있는 반면 , 전체 스프링 구성 또는 특정 스프링 부트 프로젝트에 대해 언급 된 jar 파일 또는 종속성을 기반으로 모든 모듈 기능을로드하기에 충분한 주석을 애플리케이션으로 정의하면됩니다.
3. 트랜잭션 관리는 모든 Spring 애플리케이션에서 가장 중요한 작업 중 하나입니다. 개발자는 모든 최대 절전 모드 세션 또는 DB 연결 (Spring JDBC의 경우)에 대해 적절한 트랜잭션 관리 키를 정의해야합니다. 스프링 별 트랜잭션 클래스는 애플리케이션 별 구성 파일에서 정의해야합니다. 트랜잭션을 올바르게 관리 할 수있는 전체 응용 프로그램에서 사용합니다. Spring Boot는 특정 구성을 수동으로 언급하지 않고 전체 트랜잭션 데이터를 자동으로 관리하는 반면 전체 항목은 자동으로 처리 할 수 있습니다. 모든 세션 또는 연결 열기 및 닫기에서 트랜잭션을 정의 할 수 있습니다. 특정 세션 완료 상태의 전체 작업을 기반으로 트랜잭션을 커밋 또는 롤백 할 수 있습니다.
4. 모든 ORM 툴과의 통합은 모든 종류의 스프링 애플리케이션에 매우 중요하며, 개발자가 수동으로 구성 파일에서 데이터 소스를 올바르게 정의해야하며, ORM 툴 교환을 위해 변경이 필요합니다. 스프링 부트의 경우 자동으로 쉽게 구성 할 수 있으며 수동 개입이 필요 없으며 전체 설정에 대해 하나의 데이터베이스 속성 파일만 정의하면됩니다.
5. Spring Core 또는 Spring MVC 구조 개발자는 프로젝트 요구 사항을 기반으로 기능 만로드하면 쉽게 유지할 수 있습니다. 스프링 부트의 경우 종속성 또는 jar 파일에 정의 된 모든 기능이 자동으로로드되지만 개발자는 프로젝트 요구 사항에 따라 특정 기능을 배포하지 않도록 제어 할 수 없습니다.
결론
Spring vs Spring Boot는 둘 다 언제든지 Java / J2EE 응용 프로그램에 매우 널리 사용되는 프레임 워크입니다. 일반적으로 개발자는 응용 프로그램 요구 사항이나 기능에 따라 어떤 프레임 워크를 사용하는 것이 좋을지 선택합니다. 응용 프로그램이 향후 통합 환경에서 Spring 모듈을 사용할 가능성이 있다고 가정합니다. 이 경우 Spring 부트는 기존 응용 프로그램과 특정 모듈 통합을 사용하기에 충분한 종속성 또는 jar 파일을 추가하기 때문에 항상 사용하는 것이 더 좋습니다. 그러나 애플리케이션에 미래의 전망이 없거나 순수한 웹 애플리케이션만 만들 계획이라면 개발자가 활성화 또는 비활성화하는 기능을 많이 제어하므로 Spring MVC가 좋은 접근 방식입니다.
[참고한 해외 사이트](https://www.educba.com/spring-vs-spring-boot))
'Spring' 카테고리의 다른 글
Resilience4j Circuit Breaker에 대해서 (0) | 2023.12.03 |
---|---|
[spring] @Transactional과 rollback에 대해서 (0) | 2023.11.16 |
[Spring] 스프링 어노테이션 정리 (0) | 2020.08.02 |