Back-end/Spring

DTO vs VO

Ho's log 2021. 4. 23. 11:08

DTO(Date Transfer Object)

  • 레이어 간 데이터를 전달하는 객체
  • 데이터 접근 메서드 외에 기능을 가지지 않음(setter, getter 로만 구성) + 정렬, 직렬화 등 데이터 표현을 위한 기능은 가질수 있음
  • 데이터의 캡슐화를 통해 유연한 대응이 가능함 + 데이터 요청 수 감소 효과

 

VO 

  • 값 자체로 의미를 가지는 객체
  • 변하지 않는 값을 가지는 객체 -> 값이 변하지 않음을 보장하여 코드의 안정성과 생산성을 높임
  • 값이 같다면 동일한 객체
    -> 각 개체를 비교하는 데 사용되는 ID가없음
    -> 같은 객체인지 판단하기 위해 각 속성들의 값을 비교함 

 

공통점

레이어 간 데이터를 전달할때 사용가능 (VO는 불변을 보장하기 때문에 데이터 전달 용도로 사용 가능)

 

DTO VO
값이 변할수 있음
레이어와 레이어 사이에서 사용
DTO dto(1) != DTO dto2(1)
데이터 접근 이외의 기능을 가지지않음
값이 변하지 않음
모든 레이서에서 사용 가능
VO vo1(1) == Vo vo2(1)
특정한 비즈니스 로직을 가질 수 있음 

 

참고자료: 강의를 정리 해 봤습니다. 

www.youtube.com/watch?v=EeJnNaiMy3U&list=PLgXGHBqgT2TvpJ_p9L_yZKPifgdBOzdVH&index=91

 

'Back-end > Spring' 카테고리의 다른 글

톰캣 서버에서 데이터 소스, DB 설정  (0) 2021.07.13
MVC  (0) 2021.05.16
JPA와 JDBC  (0) 2021.04.25