엔티티 식별자와 밸류 타입

엔티티 식별자의 중요성

  • 도메인 의미 전달
    • 엔티티 식별자는 단순한 데이터 이상의 의미를 가질 수 있다.
    • 신용카드 번호나 이메일 주소는 그 자체로 특정 도메인의 중요한 정보를 나타낸다.

밸류 타입을 이용한 식별자 표현

  • 의미 있는 식별자
    • 단순한 String 이나 int 대신에 식별자를 위한 밸류 타입을 사용하면 해당 데이터가 갖는 도메인 내의 특별한 의미를 더 명확하게 표현
  • 타입 안정성
    • 식별자에 특정 밸류 타입을 사용함으로
    • 오류 가능성을 줄이고 코드의 명확성을 높인다.
      • OrderNo 타입을 사용하면 주문번호만을 위한 로직과 유효성 검사를 그 타입 안에 캡슐화함
    public class OrderNo {
        private String value;
    
        public OrderNo(String value) {
            // 유효성 검사, 형식 검사 등
            this.value = value;
        }
    
        public String getValue() {
            return value;
        }
    }
    public class Order {
        private OrderNo id;
    
        public Order(OrderNo id) {
            this.id = id;
        }
    
        public OrderNo getId() {
            return id;
        }
    
        // 기타 메서드 ...
    }

장점?

  • 명확하 의미 전달
  • 유효성 검사의 중심화
  • 도메인 로직의 캡슐화
    • 식별자와 관련된 도메인 로직을 밸류 타입 안에 캡슐화
      • 로직을 사용하는 모든 곳에서 일관된 동작을 보장함.

Uploaded by N2T

'도메인주도개발' 카테고리의 다른 글

도메인 전문가와 개발자 간 지식 공유  (0) 2023.12.30
도메인 모델  (0) 2023.12.30
도메인 모델 패턴  (0) 2023.12.30
엔티티?  (0) 2023.12.30
도메인이란?  (0) 2023.12.30