Backend/Java
[Java] VO와 DTO의 차이점
leecom116
2024. 7. 30. 09:07
VO(Value Object)
값 자체를 표현하는 객체
변조가능성 메서드 존재 X ex) Setter, DTO와 달리 별도 메서드 추가 가능
-> 필드 값이 같다면 두 객체는 같은 객체로 처리
-> 실제 인스턴스 비교시 객체 주소값이 서로 다르므로, hashcode() 및 equals()를 재정의(오버라이딩) 필요
DTO(Data Transfer Object)
단순하게 데이터만 담아 계층 간 전달하는 객체
클래스가 갖고 있는 메서드는 getter / setter 만 존재
-> 오직 데이터 전달에만 초점
VO와 DTO의 차이점
VO
|
DTO
|
|
목적
|
값 자체를 표현
|
계층간 데이터 전달
|
동등성
|
필드값 동일시 같은 객체 취급
|
필드값이 같아도 같은 객체 X
|
가변성
|
불변(수정 불가)
|
Setter 존재시 가변
Setter 존재 안할시 불가변
|
로직
|
Getter / Setter 외의 별도 메서드 추가 가능
|
Getter / Setter 만 존재해야 함
|