Repository
-
DAO와 REPOSITORY 논쟁[옛날 글들] 설계 이야기 2024. 5. 28. 17:09
얼마 전 지인으로부터 DAO(Data Access Object)와 REPOSITORY의 차이점에 관해 설명해 달라는 요청을 받았다. 대부분의 소프트웨어 개발 이슈가 그렇듯이 이런 류의 질문에 대한 대답은 미묘하지만 격렬한 논쟁을 불러 일으키기 쉽다. 논쟁의 중심에는 항상 극단적인 순수주의와 허무주의 간의 충돌이 존재하며, 파국의 소용돌이 속에서 개념적 편향을 막기 위한 최선의 방법은 논쟁의 대상이 출현하게된 배경과 현재의 개념이 정립되기까지의 과정을 살펴 보는 것이다. 1990년대 말에 등장한 EJB(Enterprise Java Beans)는 Java의 ‘Write Once, Run Anywhere’ 모토를 엔터프라이즈 어플리케이션 환경으로 확장하기 위한 Sun의 야심작이다. EJB 의 중심 전략은 분산..
-
도메인 주도 설계의 적용 - 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 내부에 무엇이 포함되어야 하는지를 정의한다. 루트는 애그..