value object 관련
안녕하세요.
value object를 사용하는 이유를 잘 이해했습니다.
저같은 경우는 보통 외부에서 controller로 넘어올 때 값을 체크하고 기본타입을 그대로 많이 써 왔거든요.
강사님은 실제 프로젝트에서 이렇게 vo를 다 만들면서 하시는지 궁금하네요.
가끔 비즈니스 로직에서 유닛테스트를 한다고 할때는 email등의 값이 정상인지 체크를 해야하나 고민이 되긴 하더라고요.
vo를 쓰면 정상 값이기 때문에 그런 고민을 안해도 되겠네요.
다만 코드량이 어마어마하게 많아지니 배보다 배꼽이 더 커질것 같긴하네요.
확인 부탁드립니다.
감사합니다.
답변 1
0
좋은 질문입니다
저도 처음에 DDD를 배울 때 Entity의 클래스의 각 필드마다 VO를 만들어야 하나... 고민을 정말 많이 했는데요.
왜냐하면 필드가 점점 늘어날수록 작성하는 코드가 그만큼 많아지기 때문입니다.
그래서 실제 프로젝트에선 어느 정도 기준을 정해서 진행하고 있습니다. 도메인 로직이 필요한 필드는 VO로, 단순 null 체크만 필요한 필드는 VO를 사용하지 않는 식으로 기준을 정했습니다.
예를 들어, 나이가 18세 이상만 가입이 가능하다고 할 때 아래의 User class에서 age 는 VO로 만들고, timeZone (표준시간대) 같은 경우엔 특별히 도메인 로직이 필요없는 경우라서 기본 타입을 사용합니다.
class Person {
age: Age // Age is a value object
timeZone: string
}
저같은 경우는 보통 외부에서 controller로 넘어올 때 값을 체크하고 기본타입을 그대로 많이 써 왔거든요.
저도 필수값이 누락되는 경우를 방지하기 위해서(강의에선 VO에서 직접 값 누락을 체크하는 로직을 넣었지만..) 자바스크립트에서 사용하는 라이브러리를 사용해서 controller에서 선제적으로 체크하고 문제있으면 도메인 레이어 코드 실행 전에 바로 응답을 보내도록 하고 있습니다.
유비쿼터스 언어와 class name
0
4
0
조회 메서드 네이밍 질문
0
37
1
감정일기장 다이어리 필터 적용할때 컨텍스트를 Home에서 가져오는 특별한 이유가 궁금합니다.
0
46
2
22강 [토큰 저장] 질문
0
45
1
13강 [로그인 단일 토큰] 에서 프로젝트 실행 시 에러
0
39
1
핵사고날 아키텍처 기반으로 멀티 모듈 설계 시 질문드립니다..
0
59
2
강의 기다리고 있습니다!
0
49
0
내부 객체 직접 접근에 관하여.
0
87
2
9월 8일 세션 진행한 거는 없었을까요
0
70
1
미션1 진행방법 관련
1
75
1
스웨거 접속이 안되는데 확인 부탁드립니다.
0
53
1
디비를 조작하는데 사용하는 명령어가 ORM인가요?
0
53
2
readme에 대한 자료는 따로 받아볼수 있나요?
0
77
2
InvalidCurriculumException DIP 적용 여부 문의
0
65
2
로그인 기능 구현 (Application Layer 실습) 에서의 질문
1
202
2
바로 실무에 적용할 수 있는 내용일까요?
1
405
1
몇가지 질문
2
436
3
다음 강의는 언제 나오나요?
1
394
1
brand와 product
1
290
1
Bounded Context 와 Aggregate 질문있습니다
1
454
1
성능상의 불이익
1
341
1
소스코드
0
450
2
review write관련
1
313
1
phone.create함수 파라메터 관련
1
285
1





