엔티티 식별자의 중요성
- 도메인 의미 전달
- 엔티티 식별자는 단순한 데이터 이상의 의미를 가질 수 있다.
- 신용카드 번호나 이메일 주소는 그 자체로 특정 도메인의 중요한 정보를 나타낸다.
밸류 타입을 이용한 식별자 표현
- 의미 있는 식별자
- 단순한
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