http://www.yes24.com/Product/Goods/17350624
(스프링 입문을 위한 자바 객체 지향의 원리와 이해, 2015)을 학습하고 개인 학습용으로 정리한 내용입니다.
Spring을 이해하기 위해서 POJO를 기반으로 스프링 삼각형(IoC/DI, AOP, PSA)라는 3대 프로그래밍 모델에 대한 이해가 필수
IoC/DI
운전자가 자동차를 생산하는 과정을 예로 들어서 설명
원래 과정(자동차는 타이어에 의존한다.)
- 운전자가 자동차를 만드려고 한다.
- 자동차를 만드는 곳에서 타이어를 선택해 자동차에 장착한다.
- 운전자가 자동차를 받는다
이러한 방법은 타이어 종류가 많아질 경우 유연성이 떨어진다.
의존성 주입으로 바꾼 과정
- 운전차가 타이어를 만든다.
- 운전자가 자동차를 만든다.
- 운전자가 자동차에 타이어를 장착한다.
확장성 좋은 코드로 바꿀 수 있었다.
이 방법은 디자인 패턴의 전략 패턴을 응용하고 있다.
전략 메서드를 가진 전략 객체 - 타이어
전략 객체를 사용하는 컨텍스트 - 차
전략 객체를 생성해 컨텍스트에 주입하는 클라이언트 - 운전자
스프링을 통한 의존성 주입
- 운전자가 종합 쇼핑몰(Spring)에 방문한다.
- 운전자가 자동차를 구매하려 한다.
- 종합 쇼핑몰에서 자동차를 생산한다.
- 종합 쇼핑몰에서 타이어를 생산한다.
- 종합 쇼핑몰에서 자동차에 타이어를 장착한다.
- 운전자에게 자동차를 전달한다.
AOP(Aspect oriented Programming)
횡단 관심사를 모듈화하는 것
Aspect = advice(pointcut에 적용할 로직) + pointcut(Aspect 적용이 가능한 지점)
스프링 AOP는 인터페이스 기반이다.
스프링 AOP는 프록시 기반이다.
스프링 AOP는 런타임 기반이다.
PSA
일관성 있는 서비스 추상화
서비스 추상화: 어댑터 패턴을 적용하여 같은 일을 하는 다수의 기술을 공통의 인터페이스로 제어할 수 있게 한 것
'책 > 기술 관련' 카테고리의 다른 글
자바 객체지향의 원리와 이해 06. 디자인 패턴 (0) | 2022.02.10 |
---|---|
자바 객체지향의 원리와 이해 05. SOLID (0) | 2022.02.10 |
자바 객체지향의 원리와 이해 03. 자바와 객체 지향 (0) | 2022.02.08 |
자바 객체지향의 원리와 이해 02. 자바와 절차적/구조적 프로그래밍 (0) | 2022.02.07 |