DI 2

[DDD START!] 웹 애플리케이션 아키텍처 설계 - DIP 적용

아키텍처는 크게 4개의 영역으로 구분되는 계층구조로 이루어졌다. o 표현계층: 사용자의 요청을 응용 영역에 전달, 응용 영역의 처리 결과를 다시 사용자에게 보여주는 역할. Json Object) o 응용계층: 사용자에게 제공할 기능 구현. 직접 구현보다는 도메인 모델에 로직 수행을 위임. o 도메인계층: 도메인의 핵심 로직을 구현. ex. 주문 도메인의 '결제 완료', '주문 총액 계산', '배송지 변경' 같은 로직 o 인프라스트럭쳐계층: 상세한 구현 기술을 다룸. ex. DB연동, HTTP Client, Kafka ... 위 아키텍처는 상위 -> 하위계층으로만 의존을 하도록 되어있는데, 이 경우에 두가지 문제점이 발생한다. (1) 테스트의 어려움 - 상위 계층을 테스트하기 위해서는 하위 계층이 구현되어..

책책책 2021.08.12

[Spring] 의존관계 주입 (DI: Dependency Injection)

토비의 스프링 1장: 오브젝트와 의존관계 의존관계 주입 (DI: Dependency Injection) 이전게시글에서 살펴본 Ioc방식의 동작원리를 설명하는 용어가 바로 "의존관계주입(DI)"이다. (이전 게시글 참고:2021.06.05 - [책책책/토비의 스프링 3.1] - [토비] 제어의 역전 (IoC: Inversion of Control)) 외부로부터 생성된 오브젝트의 레퍼런스를 제공(주입)받고, 이를 통해 오브젝트간 의존관계가 생성되는 것을 말한다. 이는 의존(종속) 오브젝트 주입이라고도 불리며, 스프링 프레임워크의 차별화되는 특성이다. 다음 그림을 예시로 설계 모델 관점에서 의존관계를 설명하면, Solution 오브젝트는 IfSettingMaker를 통해 ASettingMaker를 사용하기 때..