[Spring] VO와 DTD의 차이란? (Value Object / Data Transfer Object) :: 매운코딩
728x90
300x250

Java 프로젝트에서 DB와 연동되는 부분을 사용하다보면 VO와 DTO를 자주 사용하게 된다.

오늘은 VO , DTO의 차이점에 대해서 포스팅하겠다.

 

사실 둘은 거의 같다.. 그치만 사용 용도에따라 약간씩의 차이가 있다고 보면 된다.

 

(1) VO (Value Object)

: 이름 그대로 값 객체이며 데이터를 담고있는 객체이다.

DB의 테이블 레코드와 정확히 대응되는 Java의 Class이다.

값이 변하지 않고 Read Only 특성이 있다.

 

 

(2) DTO (Data Transfer Object)

: 데이터 전송을 위한 객체로, 화면과 Controller 사이를 이동할 때 주고받기위한 일종의 객체이다.

 주로 비동기 처리를 할때 많이 사용한다.

 

회사마다 개인마다 VO와 DTO를 사용하는 목적과 용도는 조금씩 상이하다.

내가 내린 결론은,

VO는 DB와 연동된 Data를 받아올 때 사용하는 객체이며,
DTO는 받아온 VO를 Back-end내에서 (비즈니스 로직 등..) 매핑/처리가 필요할 경우에 변환하여 사용하는 객체이다.
728x90

+ Recent posts