본문 바로가기
반응형
DDD(Domain Driven Design)

DDD(Domain Driven Design) 엔티티와 밸류

by brightGarden02 2024. 3. 19.

DDD 도메인 주도 개발을 하는 이유는 무엇일까

DDD로 개발하면 명확한 개념으로 잘게 쪼개어 개발함으로

- 요구사항에 적합한 개발 가능

- 다른 개발자가 코드를 볼 때도 이해가 쉬움

- 리팩토링의 수고를 덜 수 있음

- 유지보수 하기 좋은 코드가 됨

 

 

Chapter 1. 도메인 모델 시작하기

1.6 엔티티와 밸류

클래스 다이어그램은 엔티티와 밸류로 구분할 수 있다.

엔티티와 밸류를 구분해야 하는 이유는 도메인의 올바른 설계를 위해서이다.

 

 

1.6.1 엔티티

엔티티의 특징은 고유한 식별자를 가진다는 것이다. 이 고유한 식별자로 엔티티를 구분할 수 있다.

 

 

1.6.2 엔티티의 식별자 생성

엔티티의 식별자 생성 방법은 도메인 상황에 따라 달라진다.

식별자는 보통 다음 4가지로 생성한다.

- 1) 특정 규칙에 따라 생성

- 2) UUID 혹은 Nano ID인 고유 식별자 생성기

- 3) 값을 직접 입력

- 4) 일련번호 사용(시퀀스나 DB의 자동 증가 칼럼 사용)

 

 

1.6.3 밸류 타입

밸류 타입은 개념 하나로 묶을 수 있을 때 사용한다.

public class ShippingInfo {
    // 받는 사람
    private String receiverName;
    private String receiverPhoneNumber;
    
    
    // 주소
    private String shippingAddress1;
    private String shippingAddress2;
    private String shippingAddress3;
    
	...
}

 

 

ShippingInfo는 받는 사람과 주소로 나눌 수 있으므로 아래와 같이 밸류 타입으로 분류한다.

public class Receiver {
    private String name;
    private String phoneNumber;
    
    ...
}

public class Address {
    private String address1;
    private String address2;
    private String zipcode;
    
    ...
}

public class ShippingInfo {
    private Receiver receiver;
    private Address address;
    
    ...
}

 

 

 

 

 

 

참고: 도메인 주도 개발 시작하기 책

'DDD(Domain Driven Design)' 카테고리의 다른 글

DDD(Domain Driven Design) 애그리거트  (0) 2024.03.20

댓글


반응형
반응형