Java DTO, VO

코딩/Java / / 2020. 9. 6. 21:52

DTO와 VO의 확실한 특징에 대해 알아보겠습니다.

 

1. VO란?

 

VO는 Value Object로 객체의 값을 나타냅니다. 관계 데이터베이스의 레코드에 대응되는 자바클래스로, DB의 레코드를 구성하는 필드들을 VO의 Attribute로 접근할 수 있게 Getter와 Setter 메소드의 조합으로 사용되는 클래스입니다.

 

또한 VO는 equals()와 hashcode()를 오버라이딩을 할 수 있어, 내부에 선언된 필드의 모든 값들이 VO 객체마다 값이 같아야 똑같은 객체라고 판별한다는 특징이 있습니다.

 

2. DTO란?

 

DTO는 Data Transfer Object로 데이터 전송 객체라는 의미를 가지고 있습니다. DTO의 특징 중 하나는 비동기 처리를 할 때 사용된다는 특징이 있습니다. 비동기 처리에서 JSON 데이터 타입으로 변환해야 하는 경우 DTO를 통해 JSON타입으로 변환합니다.(pom.xml을 통해 라이브러리를 다운로드 받고, 의존 주입을 해야 합니다.)

 

비동기 처리를 할 때, VO 클래스에 있는 모든 속성을 JavaScript의 JSON 형태로 반환해야 하는 경우 DTO를 따로 만들 필요는 없지만, 만약 필요한 속성들만 추려서 JSON 형식으로 파싱하여 보내줘야 하는 경우, 데이터 가공 처리를 위해 DTO를 만들어 주는 것입니다.

 

3. 정리

 

VO는 사용되는 값이 객체로 표현되며, 값의 변경이 없는 경우에 사용되고,

DTO는 데이터의 전송을 위한 객체이며, 비즈니스 로직까지 담아서 사용하기도 합니다.

 

예를들어 외부 시스템과 데이터 통신을 할 경우에는 DTO로, DB에서 가져오는 Data는 Vo로 정의해서 사용한다고 보면 될 것 같습니다.

 

 

 

참고자료

ijbgo.tistory.com/9

medium.com/webeveloper/entity-vo-dto-666bc72614bb

'코딩 > Java' 카테고리의 다른 글

Java Lambda 반복문 출력  (0) 2020.09.12
Java Properties class  (0) 2020.08.10
Java Annotation이란? 표준 에너테이션에 대해서  (0) 2020.07.25
Java List, Set, Map  (0) 2020.07.20
Java Iterator  (0) 2020.07.16
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기