티스토리 뷰

Spring 을 개발하다보면 가끔 VO 혹은 DTO를 사용할 적이 있습니다. 겉보기엔 둘이 같아보이기도 한 둘을  어떠한 목적을 갖고 사용하는지에 대해 알아보려고 합니다.


VO (Value Object)

값을 가지는 객체
  • 데이터 불변이어야 하고, 저장된 값을 불러와야하는 경우에 사용합니다.
  • 값이 같다면 동일한 객체
    • 같은 객체인지 판단하기 위해 각 속성들의 값을 비교함
    • equals() 메서드와 hashcode() 메서드를 오버라이드해서 객체 비교를 구현합니다.

 

예를 들어, 서울의 지역번호를 저장할 때 서울의 지역번호는 상식적으로 '02' 이며,

이 번호는 변하는 값이 아닌 고정된 값입니다. 그렇기 때문에 VO로 저장하고 Getter로 호출하여 사용합니다.


DTO (Data Transfer Object)

계층간 데이터 교환을 위한 객체
  • Getter 뿐만아니라 Setter를 사용하여 Data 이전을 할 수 있습니다.
  • 값을 유연하게 변경할 수 있습니다.(가변성)
  • 데이터 캡슐화를 통해 유연한 대응 가능

 

예를 들어, 회원정보 객체를 만들 경우 DTO로 명시해야 합니다.

회원의 정보는 언제든지 변할 수 있고 불변의 조건이 있으면 안됩니다.

 

 

공통적으로 데이터를 전달하기 위해 사용되는 것들이고 객체가 가변이냐 불변이냐에 따라 구분지어서 사용하는 것 같습니다. 

 

 

참고 

https://lemontia.tistory.com/591

https://jhkim0759.tistory.com/9

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함