어플 아키텍처일반적인 애플리케이션 아키텍처는 표현사용자의 요청을 처리하고 정보를 보여줌응용사용자가 요청한 기능을 실행업무 로직을 직접 구현치 않고 도메인 계층을 조합해 기능을 실행한다.도메인시스템이 제공할 도메인 규칙 구현인프라DB , 메시징 시스템 등 외부 시스템과 연동을 처리도메인 모델 패턴의 개념마틴 파울러의 정의객체 지향 기법으로 아키텍처 상의 도메인 계층을 구현하는 패턴핵심 목적도메인의 핵심 규칙과 로직을 구현하여, 시스템의 비즈니스 규칙과 데이터를 잘 나타내는 구조를 만드는 것.CODEpublic enum OrderState { PAYMENT_WAITING { @Override public boolean isShippingChangeable() { return true; } }, PREPARI..
엔티티의 정의와 특징식별자고유한 식별자엔티티의 변화와 식별자의 불변성속성 변화와 식별자엔티티의 속성이 변경되어도 식별자가 변하지 않음.주문의 배송지 주소나 상태가 변경되어도 식별자가 동일하게 유지되어야함동등성동등성 비교equals()hashCodepublic class Order { private String orderNumber; private List orderLines; // 기타 필드 // 기타 메서드 ... @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; Order ot..
엔티티 식별자의 중요성도메인 의미 전달엔티티 식별자는 단순한 데이터 이상의 의미를 가질 수 있다.신용카드 번호나 이메일 주소는 그 자체로 특정 도메인의 중요한 정보를 나타낸다.밸류 타입을 이용한 식별자 표현의미 있는 식별자단순한 String 이나 int 대신에 식별자를 위한 밸류 타입을 사용하면 해당 데이터가 갖는 도메인 내의 특별한 의미를 더 명확하게 표현타입 안정성식별자에 특정 밸류 타입을 사용함으로오류 가능성을 줄이고 코드의 명확성을 높인다.OrderNo 타입을 사용하면 주문번호만을 위한 로직과 유효성 검사를 그 타입 안에 캡슐화함public class OrderNo { private String value; public OrderNo(String value) { // 유효성 검사, 형식 검사 등 ..
도메인의 정의소프트웨어로 해결하고자 하는 문제 영역온라인 서점은 책 판매에 필요한 상품조회 구매 결제 배송 추적 등을 포함하는 도메인임도메인 구성하위 도메인도메인은 여러 하위 도메인 구성될 수 있음.온라인 서점에서 하위 도메인카탈로그상품 목록 제공주문주문 처리혜택쿠폰, 할인 제공배송상품 전달 과정의 처리도메인 실무 적용기능적인 연동 여러 하위 도메인이 서로 연동되어 완전한 기능을 제공한다.고객이 물건을 구매하면, 주문 ,결제 등의 모든 도메인이 엮임외부 시스템 통합도메인이 제공하는 기능을 직접 구현 X외부 연동하는 경우도 있음 Uploaded by N2T