전체 글
-
도메인 주도 설계의 적용 - 2. 애그리게이트와 리포지토리 4부[옛날 글들] 도메인 주도 설계 2024. 4. 12. 16:56
이전글 : 도메인 주도 설계의 적용 - 2. 애그리게이트와 리포지토리 3부 이 글은 제가 2008년 6월부터 10월까지 5개월간 마이크로소프트웨어에 연재했던 "도메인 주도 설계의 적용"이라는 원고의 원글입니다. 잡지에 맞추어 편집을 하는 과정에서 지면 상의 제약으로 인해 수정되거나 삭제된 부분이 있어 제 블로그에 원글을 올립니다. 도메인 주도 설계(Domain-Driven Design)에 관심 있는 분들에게 도움이 되었으면 합니다. OrderLineItem은 상품 정보를 알고 있는 책임을 지닌 Product 클래스와 연관 관계를 가지며, 상품의 수량(quantity)을 속성으로 포함한다. OrderLineItem의 생성자에 전달된 productName은 Product 엔트리 포인트를 검색하기 위해 사..
-
도메인 주도 설계의 적용 - 2. 애그리게이트와 리포지토리 3부[옛날 글들] 도메인 주도 설계 2024. 4. 12. 08:56
이전글 : 도메인 주도 설계의 적용 - 2. 애그리게이트와 리포지토리 2부이 글은 제가 2008년 6월부터 10월까지 5개월간 마이크로소프트웨어에 연재했던 "도메인 주도 설계의 적용"이라는 원고의 원글입니다. 잡지에 맞추어 편집을 하는 과정에서 지면 상의 제약으로 인해 수정되거나 삭제된 부분이 있어 제 블로그에 원글을 올립니다. 도메인 주도 설계(Domain-Driven Design)에 관심 있는 분들에게 도움이 되었으면 합니다. 유창하게(Fluently) 구현하기애그리게이트와 엔트리 포인트, 리포지토리를 사용하여 대략적인 도메인 모델을 스케치했으므로 테스트 주도 방식을 적용하여 도메인 로직을 개발하자. 첫 번째 아티클에서 설명한 것처럼 테스트 주도 개발 방식에서는 애플리케이션 코드를 작성하기 전에 실..
-
도메인 주도 설계의 적용 - 2. 애그리게이트와 리포지토리 2부[옛날 글들] 도메인 주도 설계 2024. 4. 11. 19:37
이전글 : 도메인 주도 설계의 적용 - 2. 애그리게이트와 리포지토리 1부이 글은 제가 2008년 6월부터 10월까지 5개월간 마이크로소프트웨어에 연재했던 "도메인 주도 설계의 적용"이라는 원고의 원글입니다. 잡지에 맞추어 편집을 하는 과정에서 지면 상의 제약으로 인해 수정되거나 삭제된 부분이 있어 제 블로그에 원글을 올립니다. 도메인 주도 설계(Domain-Driven Design)에 관심 있는 분들에게 도움이 되었으면 합니다. 애그리게이트애그리게이트(AGGREGATE)는 데이터 변경 시 하나의 단위로 취급할 수 있는 연관된 객체들의 클러스터이다. 각 AGGREATE는 루트(root)와 경계(boundary)를 가진다. 경계는 AGRREGATE 내부에 무엇이 포함되어야 하는지를 정의한다. 루트는 애그..
-
도메인 주도 설계의 적용 - 2. 애그리게이트와 리포지토리 1부[옛날 글들] 도메인 주도 설계 2024. 4. 11. 01:19
이전글 : 도메인 주도 설계의 적용 - 1. 값 객체와 참조 객체 4부이 글은 제가 2008년 6월부터 10월까지 5개월간 마이크로소프트웨어에 연재했던 "도메인 주도 설계의 적용"이라는 원고의 원글입니다. 잡지에 맞추어 편집을 하는 과정에서 지면 상의 제약으로 인해 수정되거나 삭제된 부분이 있어 제 블로그에 원글을 올립니다. 도메인 주도 설계(Domain-Driven Design)에 관심 있는 분들에게 도움이 되었으면 합니다. 시너지를 생각하라. 전체는 부분의 합보다 크다- Stephen R. Covey 흔하디 흔한 주문 도메인다음은 모델링의 단골 주제인 상품 주문에 관한 도메인 모델이다.그림 1 주문 도메인 모델 고객(Customer)은 시스템을 사용해서 상품을 주문(Order)한다. 한 번 주문 시..
-
도메인 주도 설계의 적용 - 1. 값 객체와 참조 객체 4부[옛날 글들] 도메인 주도 설계 2024. 4. 10. 18:10
이전글 : 도메인 주도 설계의 적용 - 1. 값 객체와 참조 객체 3부이 글은 제가 2008년 6월부터 10월까지 5개월간 마이크로소프트웨어에 연재했던 "도메인 주도 설계의 적용"이라는 원고의 원글입니다. 잡지에 맞추어 편집을 하는 과정에서 지면 상의 제약으로 인해 수정되거나 삭제된 부분이 있어 제 블로그에 원글을 올립니다. 도메인 주도 설계(Domain-Driven Design)에 관심 있는 분들에게 도움이 되었으면 합니다. 지금까지 살펴본 방법에서는 Customer 클래스 자체에 엔트리 포인트의 컬렉션을 관리하는 인터페이스를 추가함으로써 시스템 내에 엔트리 포인트의 인스턴스가 하나만 유지되도록 만들었다. 또 다른 방법으로는 Customer 클래스와는 분리된 별도의 클래스에 Customer 클래스의..
-
도메인 주도 설계의 적용 - 1. 값 객체와 참조 객체 3부[옛날 글들] 도메인 주도 설계 2024. 4. 10. 17:48
이전글 : 도메인 주도 설계의 적용 - 1. 값 객체와 참조 객체 2부이 글은 제가 2008년 6월부터 10월까지 5개월간 마이크로소프트웨어에 연재했던 "도메인 주도 설계의 적용"이라는 원고의 원글입니다. 잡지에 맞추어 편집을 하는 과정에서 지면 상의 제약으로 인해 수정되거나 삭제된 부분이 있어 제 블로그에 원글을 올립니다. 도메인 주도 설계(Domain-Driven Design)에 관심 있는 분들에게 도움이 되었으면 합니다. 생명 주기 제어객체 지향 시스템은 거대한 객체들의 네트워크로 구성되어 있다. 객체는 상호 연결된 객체들 간의 협력을 통해 할당된 책임을 완수한다. 일반적으로 한 객체에서 다른 객체로 이동하기 위해 객체 간의 연관 관계를 이용한다. 따라서 특정한 작업을 수행하기 위해서는 얽히고설킨..
-
도메인 주도 설계의 적용 - 1. 값 객체와 참조 객체 2부[옛날 글들] 도메인 주도 설계 2024. 4. 10. 17:02
이전글 : 도메인 주도 설계의 적용 - 1. 값 객체와 참조 객체 1부이 글은 제가 2008년 6월부터 10월까지 5개월간 마이크로소프트웨어에 연재했던 "도메인 주도 설계의 적용"이라는 원고의 원글입니다. 잡지에 맞추어 편집을 하는 과정에서 지면 상의 제약으로 인해 수정되거나 삭제된 부분이 있어 제 블로그에 원글을 올립니다. 도메인 주도 설계(Domain-Driven Design)에 관심 있는 분들에게 도움이 되었으면 합니다. 불변성불변 클래스는 다음과 같은 규칙을 따른다.객체를 변경하는 메서드(mutator)를(mutator) 제공하지 않는다.재정의할 수 있는 메서드를 제공하지 않는다.모든 필드를 final로 만든다.모든 필드를 private으로 만든다.가변 객체를 참조하는 필드는 배타적으로 접근해야..
-
도메인 주도 설계의 적용 - 1. 값 객체와 참조 객체 1부[옛날 글들] 도메인 주도 설계 2024. 4. 10. 16:24
이 글은 제가 2008년 6월부터 10월까지 5개월간 마이크로소프트웨어에 연재했던 "도메인 주도 설계의 적용"이라는 원고의 원글입니다. 잡지에 맞추어 편집을 하는 과정에서 지면 상의 제약으로 인해 수정되거나 삭제된 부분이 있어 제 블로그에 원글을 올립니다. 도메인 주도 설계(Domain-Driven Design)에 관심 있는 분들에게 도움이 되었으면 합니다. 프로그램을 가장 훌륭하게 작성하는 방법은 상태가 변경되는 오브젝트들과 수학적인 값을 나타내는 오브젝트들의 조합으로 표현하는 것이다.- Kent Beck 애플리케이션을 구성하는 객체들을 참조 객체(REFERENCE OBJECT)와 값 객체(VALUE OBJECT)로 분류할 수 있다. 참조 객체는 고객, 주문과 같이 실 세계의 추적 가능한 개념을 ..