Leehyoungwoo / spring-study

0 stars 1 forks source link

토비의 스프링 6 | 섹션 3, 4 요약 #4

Closed Leehyoungwoo closed 1 month ago

Leehyoungwoo commented 1 month ago

테스트

수동 테스트의 한계

작은 크기의 자동 수행되는 테스트(Automated Test)

개발자가 만드는 테스트

JUnit5

PaymentService 테스트의 문제점

테스트의 구성 요소

테스트와 DI

수동 DI를 이용하는 테스트

스프링 DI를 이용하는 테스트

학습 테스트 (Learing Test)

도메인 오브젝트 테스트

도메인 모델 아키텍처 패턴

스프링과 JDK 업그레이드

개방 폐쇄 원칙(OCP)

템플릿

WebApiExRateProvider Refactoring

변하는 코드 분리하기

WebApiExRateProvider의 구성

변하지 않는 코드 분리하기 - 템플릿

템플릿

템플릿 메서드 패턴

ApiExecutor 분리 - 인터페이스 도입과 클래스 분리

ApiExecutor 콜백과 메서드 주입 - Callback + Method Injection

콜백(Callback)

템플릿/콜백은 전략 패턴의 특별한 케이스

메서드 주입

템플릿/콜백의 작업 흐름

!https://user-images.githubusercontent.com/10750614/55551325-7fb4dd00-5715-11e9-96a7-23b8a0a8b103.png

ExRateExtractor 콜백 - Callback + Method Injection

ApiTemplacte 분리 - 환율 정보 API의 기본 틀

디폴트 콜백과 템플릿 빈 - 재사용 가능한 템플릿 빈

스프링이 제공하는 템플릿

RestTemplate

HTTP API 요청을 처리하는 템플릿

HTTP Client 기술을 사용해서 ClientHttpRequest를 생성하는 전략

doExecute()

스프링에의 Template

MyBatis