DTO : 데이터 전달용
= Data Transfer Object
= 데이터를 전달하기 위해 사용하는 객체
= 데이터를 담아서 전달하는 바구니
- 오직 getter/setter 메서드만을 갖는다. setter를 사용하지 않고 생성자 메서드를 사용한다면 불변 객체로 만들어 중간에 데이터 위변조를 막을 수 있다.
- 다른 로직을 갖지 않는다.
- DTO class와 Entity class를 분리하라.
VO : 값 표현
= Value Object
= 값 그 자체를 표현하는 객체
- VO의 경우 값 그 자체를 나타내는 객체로써, 핵심은 필드 값이 같다면 두 객체를 같은 객체로 본다는 것이다. 이때 당연하게도 주소값을 비교하는 경우의 문제점을 위해서 hashcode()와 equals()를 재정의하여 필드 값이 같다면 같은 객체로 인식될 수 있도록 해주어야 한다.
참고 : https://kbwplace.tistory.com/162