728x90
※본 글은 제 주관적인 생각을 나타낸 글입니다. 주의해주세요.※
먼저 이 글에서 DTO에 대해 설명하고 있지만, 다시 한 번 더 자세히 설명하겠습니다.
DTO(Data Transfer Object)
- DB에서 검색하기 위해 DAO와 함께 사용되는 경우가 종종 있다.
- 저장 및 검색 외에 로직을 가지지 않는다. (비지니스 로직 가지지 않음)
- 가변
- 레이어와 레이어 사이에서 사용 가능
VO (Value Object)
- 값이 동일하다면 동일한 객체로 봄
- 불변
- 비지니스 로직을 가질 수 있다.
- DTO를 대신하여 표현하기도 한다.
- equals와 hashcode를 재정의를 해야한다.
- 모든 레이어에서 사용 가능
위 내용들은 이 글을 참고하였습니다.
사실 제목처럼 뭐를 사용하는 것이 맞다는 정답도 없고,
논쟁이 많기 때문에 사용 용도를 구분하는 것은 어렵습니다.
개발팀 내에서 용도를 정해서 사용하는 것이 가장 좋습니다.
(개인적으로 저는 VO보다는 DTO를 자주 사용합니다.)
물론 굳이 어떤 방식으로 사용해야하는 지 감이 아예 잡히지않는 다면 제가 사용하는 방식을 사용해보시는 것도
괜찮을 듯 합니다.
VO
- 객체 안의 값을 비교해야하는 중요 로직에서 사용할 Data를 담기 위해 사용
- 특정 중요한 Data를 전달할 때 사용
- VO에 대한 민감도 < Entity에 대한 민감도
DTO
- 민감하지 않거나 동일한 객체임을 비교하는 로직이 없는 경우에 사용
- 단순 Data 송/수신
- DTO에 대한 민감도 < VO에 대한 민감도
이상입니다.
'Spring' 카테고리의 다른 글
[Spring] JPA 공부 #1 (1) | 2022.03.25 |
---|---|
[Spring] AOP 예제 (0) | 2022.03.14 |
[Spring] Spring Transaction 세부 설정 설명 (0) | 2022.02.21 |
[Spring] Spring Transaction 특징 및 핵심기술 설명 (0) | 2022.02.20 |
[Spring] Spring AOP/PSA 설명 (0) | 2022.02.19 |