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에서 선제적으로 체크하고 문제있으면 도메인 레이어 코드 실행 전에 바로 응답을 보내도록 하고 있습니다.
Editor Component의 최적화 불가능 이슈
0
13
2
useCallback ⊂ useMemo
0
16
2
nestjs 강의는 없나요??
1
19
2
JPA 엔티티로 만들었다고 기술종속이 아닌지에 대한 질문
0
25
2
라이브러리 설치 질문
0
22
2
linter 질문
0
31
2
리덕스 툴킷 맵다
0
27
1
11장 미션에 이메일 남기는걸 누락했어요.
0
32
1
감정일기장 vercel 배포 후 새로 고침 시 404페이지가 뜨는 이유
0
37
2
Sort 메서드 관련 아티클
0
41
2
4.1) React.js를 소개합니다 강의를 듣고 궁금한 점이 생겼습니다.
0
41
2
html, body에 적용하는 css 스타일 질문입니다.
0
38
2
설계 트레이드 오프 링크 접속 안됨
0
72
2
소스코드즘 부탁드립니다.
0
42
1
로그인 기능 구현 (Application Layer 실습) 에서의 질문
1
187
2
바로 실무에 적용할 수 있는 내용일까요?
1
396
1
몇가지 질문
2
423
3
다음 강의는 언제 나오나요?
1
386
1
brand와 product
1
281
1
Bounded Context 와 Aggregate 질문있습니다
1
444
1
성능상의 불이익
1
333
1
소스코드
0
440
2
review write관련
1
305
1
phone.create함수 파라메터 관련
1
280
1





