classbinu
2분2분 전
DDD: 값 객체
원시 타입 값 만으로도 소프트웨어 만들 수 있다.
하지만 원시 타입은 지나치게 범용적이다.
예를 들어 이메일 주소를 원시 타입 string으로만 표현하면
'@가 들어가야 한다는 규칙'을 string으로는 표현하기 어렵다.😬
값 객체를 통해 해당 값의 규칙을 값 객체 안에 기술할 수 있다.
예를 들어 Email 값 객체는 string 타입보다 의미가 있다! 📧
⭐️ 규칙을 값 객체 안에 기술하면
코드 자체가 문서의 역할을 한다.
값 객체는 DDD의 기본 패턴 🚀
도메인 개념을 객체로 정의할 때
값 객체에 적합한 개념인지 검토하기
왜냐면 결국 트레이드 오프!
모든 걸 다 값 객체로 사용하는 게 무조건 좋은 건 아님.
오버 엔지니어링은 아닌지 고민도 필요하다.🤔
답글
베타 - 페디버스에 공유합니다.
classbinu
2분2분 전
DDD: 값 객체
타입스크립트에서 타입이 왜 필요한지
조금 더 근본적인 이유를 알게된 것 같음.
단순히 변수에 타입을 지정하는 목적이 아니었다!
원시 타입 값 만으로도 소프트웨어 만들 수 있다.
하지만 원시 타입은 지나치게 범용적이다.
예를 들어 이메일 주소를 원시 타입 string으로만 표현하면
'@가 들어가야 한다는 규칙'을 string으로는 표현하기 어렵다.😬
값 객체를 통해 해당 값의 규칙을 값 객체 안에 기술할 수 있다.
예를 들어 Email 값 객체는 string 타입보다 의미가 있다! 📧
⭐️ 규칙을 값 객체 안에 기술하면
코드 자체가 문서의 역할을 한다.
값 객체는 DDD의 기본 패턴 🚀
도메인 개념을 객체로 정의할 때
값 객체에 적합한 개념인지 검토하기
왜냐면 결국 트레이드 오프!
모든 걸 다 값 객체로 사용하는 게 무조건 좋은 건 아님.
오버 엔지니어링은 아닌지 고민도 필요하다.🤔
classbinu
어? 혹시 nest.js의 class-validator가 이런 값 객체의 유효성 검증을 추상화해서 대신 해 주는 건가?
값 객체 내에서 절차적으로 유효성을 검증할 수도 있고, 라이브러리 데코레이터로 선언적으로 검증할 수도 있고..? 💡
어? 혹시 nest.js의 class-validator가 이런 값 객체의 유효성 검증을 추상화해서 대신 해 주는 건가?
값 객체 내에서 절차적으로 유효성을 검증할 수도 있고, 라이브러리 데코레이터로 선언적으로 검증할 수도 있고..? 💡