Web

VO vs DTO

byeongoo 2021. 2. 9. 16:18

1. DTO(Data Transfer Object)

  • 계층(Layer)간 데이터 교환을 위해 사용하는 객체
  • 로직을 갖고 있지 않는순수한 데이터 객체이며, getter/setter 메서드만 갖는다. (생성자까지는 갖음)

 

2.. VO(Value Object)란?

  • 데이터 그 자체로 의미 있는 것을 담고 있는 객체
  • 서로 다른 이름을 가진 VO의 인스턴스가 모든 속성 값이 같다면 같은 객체(equals, hashcode 재정의)
  • 객체의 불변성을 보장
  • 로직 포함 가능

 

3. VO 사용이점

  • VO사용시 데이터를 전달할 때 데이터가 변조되지 않음을 보장할 수 있음