Web 개발/도메인 주도 개발
-
도메인 주도 개발5 - Entity와 Value2Web 개발/도메인 주도 개발 2023. 11. 12. 16:06
Entity와 Value2 엔티티 식별자와 벨류 타입 엔티티 식별자의 실제 데이터는 String과 같은 문자열로 구성된 경우가 많다. 신용카드의 번호도 16개의 숫자로 구성된 문자열이며 많은 온라인 서비스에서 회원을 구분할 대 사용하는 이메일 주소도 문자열이다. 식별자에 밸류타입 사용 public class Order{ //OrderNo 타입 자체로 id가 주문번호임을 알 수 있다. private OrderNo id; ... public OrderNo getId(){ return id; } } Money가 단순한 숫자가 아닌 도메인의 '돈'을 의미하는 것처럼 이런 식별자는 단순한 문자열이 아니라 도메인에서 측별한 의미를 지니는 경우가 많이 때문에 식별자를 위한 밸류 타입을 사용해서 의미가 잘 드러나도록 ..
-
도메인 주도 개발3 - 도메인 모델 도출Web 개발/도메인 주도 개발 2023. 10. 10. 15:05
도메인 모델 도출 도메인에 대한 이해 없이 코딩을 시작할 수 없다. 기획서, 유스케이스(Use Case),사용자 스토리와 같은 요구 사항과 관련자와의 대화를 통해 도메인을 이해하고 이를 바탕으로 도메인 초안을 만들어야 비로소 코드를 작성할 수 있다. 화이트보드, 종이와 연필, 모델링 툴 중 무엇을 선택하든 구현을 시작하려면 도메인에 대한 초기 모델이 필요하다. 요구사항 정리 도메인을 모델링할 때 기본이 되는 작업은 모델을 구성하는 1)핵심 구성요소, 2)규칙, 3)기능을 찾는 것이다. 이 과정은 요구사항에서 출발한다. 예시로 주문 도메인과 관련된 몇 가지 요구사항을 알아보자. 최소 한 종류 이상의 상품을 주문해야 한다. 한 상품을 한 개 이상 주문할 수 있다. 각 상품의 구매 가격 합은 상품 가격에 구..
-
도메인 주도 개발2 - 도메인 모델 패턴Web 개발/도메인 주도 개발 2023. 10. 10. 11:39
도메인 모델 패턴 표 1.1 아키텍쳐 구성 영역 설명 사용자 인터페이스(UI) 표현(Presentation) 사용자의 요청을 처리하고 사용자에게 정보를 보여준다.여기서는 사용자는 소프트웨어를 사용하는 사람뿐만 아니라 외부 시스템일 수도 있다. 응용(Application) 사용자가 요청한 기능을 실행한다. 업무 로직을 직접 구현하지 않으며 도메인 계층을 조합해서 기능을 실행한다. 도메인 시스템이 제공할 도메인 규칙을 구현한다. 인프라스트럭처(Infrastructure) 데이터베이스나 메시징 시스템과 같은 외부 시스템과의 연동을 처리한다. 일반적인 애플리케이션의 아키텍쳐는 [그림 1.5]와 같이 네 개의 영역으로 구성된다. 각 영역의 역할은 [표 1.1]과 같다. 앞서 살펴본 도메인 모델이 도메인 자체를 이..
-
도메인 주도 개발1 - 도메인 모델Web 개발/도메인 주도 개발 2023. 10. 6. 14:37
도메인이란? 개발 입장에서 보면 온라인 서점은 구현해야 할 소프트웨어의 대상이 된다. 온라인 서점 소프트웨어는 온라인으로 책을 판매하는 데 필요한 상품 조회, 구매, 결제, 배송 추적 등의 기능을 제공해야 한다. 이때 온라인 서점은 소프트웨어로 해결하고자 하는 문제 영역, 즉 도메인(domain)에 해당한다. 한 도메인은 다시 하위 도메인으로 나눌 수 있다. 예를 들어 온라인 서점 도메인은 [그림 1.1]과 같이 몇 개의 하위 도메인으로 나눌 수 있다. 카탈로그 하위 도메인은 고객에게 구매할 수 있는 상품 목록을 제공하고, 주문 하위 도메인은 고객의 주문을 처리한다. 혜택 하위 도메인은 쿠폰이나 특별 할일과 같은 서비스를 제공하고, 배송 하위 도메인은 고객에게 구매한 상품을 전달하는 일련의 과정을 처리한..