개발 용어

DTO , VO

hojncode 2023. 5. 18. 00:00
  • VO , DTO
    • VO : 데이터 그 자체로 의미 있는 것들
    • DTO : 전송되는 데이터의 컨테이너

 

VO (Value Object)  DTO (Data Transfer Object)
VO는 변하지 않는 데이터 객체를 의미. DTO 는 데이터를 담는 그릇.
사용 되는 값이 객체로 표현 되어지는 경우에 사용. 값의 변경 없음 데이터의 전송을 위한 객체, 과거에는 값을 전달하는 데만 사용되었지만 현재는 비지니스 로직 등을 가지고 있는 경우가 많음.
VO는 클라이언트와 밀접한 관계 DTO는 Database 와 관계
VO를 조회때 사용하는 이유는 VO 에 들어있는 값이 Database 에 저장되어 있는 값을 조작하는데 사용되고 있지는 않기 때문.  
(조회하는데 필요한 조건으로 사용되는 값일뿐 그 값이 DB 테이블에 반영되는 것은 아님) DTO의 경우는 실제 DB에 반영되는데 사용되는 값이기 때문에 insert, delete, update 에 사용
클라이언트에 값을 전달해야 할 구조가 상황에 따라 다름. DTO는 흔히 테이블 구조와 거의 동일한 설계로 가기 때문에 변하지 않음.
어떤 화면에서는 VO에 있는 값을 json으로 변환해서 전달해야 하는 경우 -
key 이름을 다르게 해야하는 한다거나 , 약속된 json구조에 맞춰야 하기 때문에 DTO와는 달리 다양한 VO가 나옴.
파라미터를 VO를 받아서 DTO 를 리턴해주는 메소드를 DTO에 만들수 있음 (반대의 경우도 가능)