기초 구조를 짜던 중, DB table을 받을 클래스를 짜던 중, 네이밍에 대한 고민을 하며 해당 내용에 대해 학습 및 정리를 하였다.
DTO
계층간 교환을 위한 객체.
데이터 교환만을 위해 사용되므로 getter/setter 메소드만 존재
VO
값을 표현만 하는 객체
로직x, 객체의 불변성을 보장. 이를 위해 equals() 및 hashCode() 메소드를 오버라이딩.
@Override
public boolean equals(final Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
final Point point = (Point) o;
return x == point.x &&
y == point.y;
}
@Override
public int hashCode() {
return Objects.hash(x, y);
}
출처