[옛날 글들] 도메인 주도 설계
-
도메인 주도 설계의 적용 - 3. 의존성 주입과 관점 지향 프로그래밍 4부[옛날 글들] 도메인 주도 설계 2024. 4. 18. 15:23
이전글 : 도메인 주도 설계의 적용 - 3. 의존성 주입과 관점 지향 프로그래밍 3부 이 글은 제가 2008년 6월부터 10월까지 5개월간 마이크로소프트웨어에 연재했던 "도메인 주도 설계의 적용"이라는 원고의 원글입니다. 잡지에 맞추어 편집을 하는 과정에서 지면 상의 제약으로 인해 수정되거나 삭제된 부분이 있어 제 블로그에 원글을 올립니다. 도메인 주도 설계(Domain-Driven Design)에 관심 있는 분들에게 도움이 되었으면 합니다. 사용(Use)으로부터 구성(Configuration)을 분리하라UML 다이어그램을 통해 현재 설계에 어떤 문제점이 있는지 살펴보자. 그림2 OrderLineItem이 직접 CollectionProductRepository를 생성하기 때문에 OrderLineItem..
-
도메인 주도 설계의 적용 - 3. 의존성 주입과 관점 지향 프로그래밍 3부[옛날 글들] 도메인 주도 설계 2024. 4. 17. 14:21
이전글 : 도메인 주도 설계의 적용 - 3. 의존성 주입과 관점 지향 프로그래밍 2부 이 글은 제가 2008년 6월부터 10월까지 5개월간 마이크로소프트웨어에 연재했던 "도메인 주도 설계의 적용"이라는 원고의 원글입니다. 잡지에 맞추어 편집을 하는 과정에서 지면 상의 제약으로 인해 수정되거나 삭제된 부분이 있어 제 블로그에 원글을 올립니다. 도메인 주도 설계(Domain-Driven Design)에 관심 있는 분들에게 도움이 되었으면 합니다. 영속성(Persistence)과 리포지토리리포지토리는 도메인 객체 생성 이후의 생명주기를 책임진다. 도메인 객체가 생성되고 상태가 초기화된 후에는 리포지토리에게 넘겨진다. 리포지토리는 객체를 넘겨받아 내부 저장소에 보관하고 요청이 있을 경우 객체를 조회하여 반환하..
-
도메인 주도 설계의 적용 - 3. 의존성 주입과 관점 지향 프로그래밍 2부[옛날 글들] 도메인 주도 설계 2024. 4. 16. 09:23
이전글 : 도메인 주도 설계의 적용 - 3. 의존성 주입과 관점 지향 프로그래밍 1부 이 글은 제가 2008년 6월부터 10월까지 5개월간 마이크로소프트웨어에 연재했던 "도메인 주도 설계의 적용"이라는 원고의 원글입니다. 잡지에 맞추어 편집을 하는 과정에서 지면 상의 제약으로 인해 수정되거나 삭제된 부분이 있어 제 블로그에 원글을 올립니다. 도메인 주도 설계(Domain-Driven Design)에 관심 있는 분들에게 도움이 되었으면 합니다. 객체 그리고 영속성(Persistence)모든 객체는 생성자가 호출되는 시점에 생성된다. 값 객체의 수명은 짧다. 생성된 후 잠시 다른 참조 객체 또는 값 객체에 의해 사용되다가 다른 값 객체로 대체된다. 갈 길을 잃은 값 객체는 가비지 컬렉터에게 넘겨진 후 조..
-
도메인 주도 설계의 적용 - 3. 의존성 주입과 관점 지향 프로그래밍 1부[옛날 글들] 도메인 주도 설계 2024. 4. 13. 09:25
이전글 : 도메인 주도 설계의 적용 - 2. 애그리게이트와 리포지토리 5부 이 글은 제가 2008년 6월부터 10월까지 5개월간 마이크로소프트웨어에 연재했던 "도메인 주도 설계의 적용"이라는 원고의 원글입니다. 잡지에 맞추어 편집을 하는 과정에서 지면 상의 제약으로 인해 수정되거나 삭제된 부분이 있어 제 블로그에 원글을 올립니다. 도메인 주도 설계(Domain-Driven Design)에 관심 있는 분들에게 도움이 되었으면 합니다. 기록은 기억을 남긴다.- Baltasar Gracian 여기 한 사나이가 있다. 불안한 시선으로 방을 둘러보던 사나이는 자신의 몸에 새겨진 문신과 폴라로이드 사진에 적힌 문장 몇 줄에 의지해 이전의 상황을 재구성하려고 노력한다. 그는 전직 보험 수사관으로, 아내가 죽던 ..
-
도메인 주도 설계의 적용 - 2. 애그리게이트와 리포지토리 5부[옛날 글들] 도메인 주도 설계 2024. 4. 12. 21:42
이전글 : 도메인 주도 설계의 적용 - 2. 애그리게이트와 리포지토리 4부이 글은 제가 2008년 6월부터 10월까지 5개월간 마이크로소프트웨어에 연재했던 "도메인 주도 설계의 적용"이라는 원고의 원글입니다. 잡지에 맞추어 편집을 하는 과정에서 지면 상의 제약으로 인해 수정되거나 삭제된 부분이 있어 제 블로그에 원글을 올립니다. 도메인 주도 설계(Domain-Driven Design)에 관심 있는 분들에게 도움이 되었으면 합니다. 엔트리 포인트와 리포지토리Order는 주문 애그리게이트의 엔트리 포인트다. 따라서 주문이 필요한 경우 OrderRepository를 통해 해당 Order 객체를 얻을 수 있다. 그럼 특정한 고객에 대한 주문 목록을 얻어야 한다면 어떻게 해야 할까? 쉽게 생각해 볼 수 있는 ..
-
도메인 주도 설계의 적용 - 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 내부에 무엇이 포함되어야 하는지를 정의한다. 루트는 애그..