728x90
반응형
[Book Study] 스프링 부트 핵심 가이드
1. 스프링 부트란?
1 - 1 스프링 프레임워크
▶ 제어 역전 (IoC : Inversion of Control)
- 사용할 객체를 직접 생성하지 않고 객체의 생명 주기를 스프링 컨테이너 또는 IoC 컨테이너에 위임
- 제어 역전 : 객체의 관리를 컨테이너에 맡겨 제어권이 넘어간 것
- 제어 역전을 통해 의존성 주입(DI: Dependency Injection), 관점 지향 프로그래밍(AOP: Aspect-Oriented Programming) 등이 가능
▶ 의존성 주입 (DI : Dependency Injection)
- 사용할 객체를 직접 생성하지 않고 외부 컨테이너가 생성한 객체를 주입받아 사용하는 방식
- 의존성을 주입받는 방법 세 가지
- 생성자를 통한 의존성 주입
- 필드 객체 선언을 통한 의존성 주입
- setter 메서드를 통한 의존성 주입
- 스프링에서는 @Aurowired라는 어노테이션(annotation)을 통해 의존성 주입
// 1.생성자를 통한 의존성 주입
@RestController
public class DiController {
Myservice mySerice;
@Autowired
public DIController(Myservice myService) {
this.myService = myService;
}
@GetMappring("/di/hello")
public String getHello() {
return myService.getHello();
}
}
// 2.필드 객체 선언을 통한 의존성 주입
@RestController
public class FieldInjectionController {
@Autowired
private MyService myService;
}
//3. setter 메서드를 통한 의존성 주입
@RestController
public class SetterInjectionController {
MyService myService;
@Autowired
public void setMyService(MyService myService) {
this.myService = myService;
}
}
- 스프링 공식 문서에서 권장하는 의존성 주입 방법 : 생성자를 통한 의존성을 주입받는 방식.
- 생성자를 통해 의존성을 주입받는 방식은 레퍼런스 객체 없이는 객체를 초기화할 수 없게 설계할 수 있기 때문
▶ 관점 지향 프로그래밍 (AOP : Aspect-Oriented Programming)
- 관점을 기준으로 묶어 개발하는 방식
- 여러 비즈니스 로직에서 반복되는 부가 기능을 하나의 공통 로직으로 처리하도록 모듈화해 삽입하는 방식
- AOP를 구현하는 방법
- 1. 컴파일 과정에서 삽입하는 방식
- 2. 바이트코드를 메모리에 로드하는 과정에 삽입하는 방식
- 3. 프락시 패턴을 이용한 방식
- 스프링 AOP의 목적 : 모듈화해서 재사용 가능한 구성을 만드는 것
▶ 스프링 프레임워크의 다양한 모듈
1 - 2 스프링 프레임워크 vs. 스프링 부트
▶ 의존성 관리
- 스프링 프레임워크에서는 모듈 의존성을 직접 설정
- 스프링 부트에서는 "spring-boot-starter"라는 의존성을 제공
▶ 자동 설정
- 추가된 라이브러리를 실행하는 데 필요한 환경 설정을 알아서 찾음
- 즉, 애플리케이션을 개발하는 데 필요한 의존성을 추가하면 프레임워크가 이를 자동으로 관리
▶ 내장 WAS
- "spring-boot-starter-web"에 톰캣이 내장
▶ 모니터링
- 스프링 부트 액추에이터(Spring Boot Actuator)라는 자체 모니터링 도구
728x90
반응형
'Web Develop > Book Study' 카테고리의 다른 글
[Book Study] 스프링 부트 핵심 가이드 - 3. 개발 환경 구성 (0) | 2023.08.22 |
---|---|
[Book Study] 스프링 부트 핵심 가이드 - 2. 개발에 앞서 알면 좋은 기초 지식 (0) | 2023.08.22 |
[Book Study] 스프링 프레임워크 첫걸음 - 12. 애플리케이션 만들기 (애플리케이션 레이어) (0) | 2023.08.17 |
[Book Study] 스프링 프레임워크 첫걸음 - 11. 애플리케이션 만들기 (비즈니스 로직 처리) (0) | 2023.08.17 |
[Book Study] 스프링 프레임워크 첫걸음 - 10. 애플리케이션 만들기 (데이터베이스 조작) (0) | 2023.08.16 |
댓글