티스토리 뷰
개요
# 참고
IMPLEMENTING DOMAIN DRIVEN DESIGN (도메인 주도 설계 구현) - 반 버논 지음
# 개요
DDD에 대한 기술서적을 읽고 DDD가 무엇인지 이해하고 어떻게 코드에 적용시킬 수 있는지 고민해 보려고 한다.
# 11장의 로드맵
- 팩토리 사용이 유비쿼터스 언어에 부합하는 표현력이 좋은 모델을 생성하게 해주는 이유
- 팩토리 메소드를 애그리게잇의 행동으로 사용하는 방법
- 다른 타입의 애그리게잇 인스턴스를 생성하기 위해 팩토리 메소드를 어떻게 사용할지 생각해보자
- 다른 바운디드 컨텍스트와 상호작용하고 외래 객체를 로컬 타입으로 변환하는 팩토리로서 도메인 서비스를 설계하는 방법을 배우자
11장. 팩토리
팩토리는 아마도 DDD에서 사용되는 패턴 중에서 좀 더 잘 알려진 편에 속하는 패턴이다. 추상 팩토리와 팩토리 메소드와 빌더는 디자인 패턴을 통해 널리 알려지게 되었다. 여기선 도메인 모델 안에서 어떻게 팩토리를 사용할지 예제를 보여주는데 초점을 맞춘다.
팩토리는 도메인 모델 내에서 객체 생성 외의 추가적인 책임을 가질 수 도 있고 그렇지 않을 수도 있다. 특정한 애그리게잇 타입만을 인스턴스화하기 위한 객체에겐 그 외의 책임은 부여되지 않으며, 모델의 가장 중요한 구성 요소 중 하나로 취급되지 않느다. 이는 단지 팩토리 일 뿐이다. 다른 애그리게잇 타입의 인스턴스를 생성하기 위해 팩토리 메소드를 제공하는 애그리게잇 루트는 주요 애그리게잇 행동을 제공할 책임을 갖게 되며, 팩토리 메소드는 단지 그중 하나일 뿌니다.
애그리게잇 생성 과정 중의 일부 세부사항은 잘못된 상태를 갖지 않도록 보호돼야 한다. 잘못된 테넌트에서 어그리게잇 인스턴스가 생성돼 잘못된 식별자가 부연되다면 치명적인 결과를 초래할 수 있다. 신중하게 설계된 팩토리 메소드를 애그리게잇 루트에 배치해 테넌시와 다른 연결된 식별자가 올바로 생성됨을 바장할 수 있다. 이를 통해 클라이언트가 단순해지며, 생성의 세부사항을 숨겨서 값 객체와 같은 기본 매개변수만 전달하면 충부해진다.
'DDD' 카테고리의 다른 글
13장. 바운디드 컨텍스트 통합 / IDDD (도메인 주도 설계 구현) (0) | 2022.03.17 |
---|---|
12장. 리파지토리 / IDDD (도메인 주도 설계 구현) (0) | 2022.03.17 |
10장. 애그리게잇 / IDDD (도메인 주도 설계 구현) (0) | 2022.03.16 |
9장. 모듈(패키지) / IDDD (도메인 주도 설계 구현) (0) | 2022.03.16 |
8장. 도메인 이벤트 / IDDD (도메인 주도 설계 구현) (0) | 2022.03.15 |