01. DTO
DTO(Data Transfer Object)
- 데이터 전달용 객체.
- "계층간" 데이터를 전달하기 위한 객체
- An object that is used to encapsulate data, and send it from one subsystem of an application to another.
특성
- getter와 setter만을 갖는다.
- 다른 로직은 사용할 수 없다(로직에 한해서만 제한되므로 빌더패턴을 사용하는 것은 상관없다.)
DTO와 Entity
- Dto와 Entity를 분리하라.
- 요청이나 응답값을 전달하는 용도로는 DTO를 쓰라.
02. VO
VO(Value Object)
특성
- 생성자로만 초기화
- Getter/Setter이외의 로직 사용가능.
03. 비교
| DTO | VO |
---|
용도 | 데이터 전송 | 값 자체 |
동등비교 | 속성값과 관계 없음. | 속성값 같으면 동일 객체 |
가변/불변 | 가변 | 불변 |
로직 | Getter/Setter만 | 제한없음 |
04. 추가
Difference between DTO, VO, POJO, JavaBeans?