Spring Framework: Dependency Injection
스프링 프레임워크는
의존성을 정의하고 의존성을 식별하여 자동으로 연결하는
의존성 주입이 핵심입니다.
다양한 주석을 사용하여 의존성을 정의하고
@Component, @Service, ...
특정 패키지에서 ComponentScan을 실행하여 해당 패키지에서 정의된 모든 컴포넌트를 식별할 수 있습니다.
@ComponentScan
모든 컴포넌트와 의존성을 식별하고 나면 이를 자동으로 연결할 수 있습니다.
@Autowired
이것이 Spring Framework의 코드 작업입니다.
하지만 의존성 주입만으로는 강력한 애플리케이션을 빌드할 수 없으며, 다른 프레임워크가 필요합니다.
Spring Modules와 Spring Projects는 Spring 생태계를 확장합니다.
이를 통해 다른 프레임워크와 잘 통합할 수 있습니다.
(DB 통신을 위한 Hibernate나 JPA, 단위 테스트 작성을 위한 JUnit과 Mockito)
Spring Framework의 핵심은 의존성 주입이고
Spring Modules와 Spring Projects는 다른 프레임워크와 쉽게 통합할 수 있도록 지원합니다.
Spring MVC(Spring Module) : Simplify building web apps and REST API
스프링 MVC는 스프링 모듈입니다.
Spring MVC의 핵심은 웹 애플리케이션과 REST API의 빌드 과정을 간소화하는 것으로,
웹 앱과 REST API에만 집중합니다.
@Controller, @RestController, @RequestMapping과 같은 주석을 사용할 수 있습니다.
Spring MVC은 웹 애플리케이션을 쉽게 빌드하도록 지원합니다,
Spring과 Spring MVC를 사용하여 아주 간단한 애플리케이션을 빌드할 때도
pom.xml, web.xml, applicationcontext.xml에 설정을 하는 것이 필요합니다.
Spring Boot(Spring Project): Build PRODUCTION-READY apps QUICKLY
스프링 부트는 스프링 프로젝트입니다.
Spring Boot는 프로덕션 환경에 사용 가능할 수 있는 애플리케이션을 빠르게 빌드하도록 지원합니다.
주요 기능은 Starter Projects와 Auto Configuration입니다.
(+ Spring Initializr, DevTools)
(프로덕션 환경을 지원하는 기능: Actuator, Logging, Profile, ConfigurationProperties)
웹 앱을 개발할 때, 필요한 의존성이 있으면 web starter로부터 가져옵니다.
Auto Configuration을 사용하면
클래스 경로에 있는 항목에 따라
Spring 과 Spring MVC, 다른 프레임워크의 디폴트 설정을 자동으로 제공받을 수 있습니다.
Spring Boot는 여러 가지 비기능 요구사항(NFRs)에 대한 설정을 할 수 있습니다.
- Actuator: 모니터링
- Embedded Server: 앱 배포 과정 간소화
- Logging, Error Handling
- Profiles, ConfigurationProperties: 애플리케이션 설정 간소화
Spring Boot는 Spring MVC와 Spring을 쉽게 사용할 수 있도록 하는 래퍼입니다.
'Java' 카테고리의 다른 글
[JPA, Hibernate] 시작하기 -2, JPA 및 Spring Data JPA 사용하기 (0) | 2023.12.23 |
---|---|
[JPA, Hibernate] 시작하기 -1, 초기 설정 및 JDBC 사용하기 (0) | 2023.12.22 |
[SpringBoot] 프로덕션 환경 배포 준비하기(로깅, 모니터링, 구성관리) (0) | 2023.12.22 |
[SpringBoot] Spring Boot 목적, 프로젝트 생성(spring.io) (0) | 2023.12.21 |
[SpringBoot] Spring Boot 등장 배경 (1) | 2023.12.21 |