웹개발

스프링 웹개발 용어정리:: VO와 DTO의 차이점

업무 중 2020. 9. 28. 21:55

공통점

1) 동일하게 데이터를 저장하여 사용할 때 필요하다.

 

Vo (Value Object)

- 데이터 그 자체로 의미 있는 것을 담고 있다.

- Read-Only 속성의 객체이다.

- 간단한 독립체(Entity)를 의미하는 작은 객체이다.

- 관계데이터베이스의 레코드에 대응하는 자바 클래스이다.

 

DTO (Data Transfer Object)

- 전송되는 데이터를 담고 있는 컨테이너이다.

- DTO의 경우 같은 시스템이 아닌 다른 시스템으로 전달하여 작업을 처리하는 객체이다.

- 레이어간의 통신 용도로 오가는 객체를 의미하기도 한다.

- 현재의 개발환경에서 데이터는 다음과 같은 흐름으로 이동한다.

           ▲ 서버: Database Column Data - DTO - API(JSON or XML) -> Client

           ▲ 클라이언트: Server - API(JSON or XML) - DTO - View or Local Database System

 

 

VO : 사용되는 값 자체가 객체로 표현되며 값의 변견이 없다.

DTO: 데이터의 전송을 위한 객체이며 비지니스 로직까지 담아서 사용한다.

 

 


 

개발을 공부하면서 강사에 따라 DTO로 사용하기도, VO 로 사용하기도 하였다.

특별하게 나눠져있는 부분이 아니라 말 그대로 취향대로 사용되는 것 같은데, 아마 실무에서는 팀에 따라 정해져있는 방식이 있겠지 싶다.

어떤 차이점이 있는지 짚고 넘어가는게 좋을 것 같아 정리해보았다.