코딩조각

[spring]DAO, DTO, VO 란?

밍튜 2023. 1. 13. 15:07
목표 

DAO, DTO, VO 의 개념에 대해 알아보자

DTO랑 VO의 차이는 뭐지??

 


DAO(Data Access Object)

DB의 data에 접근하기 위한 객체.
DB에 접근하기 위한 로직을 분리하기 위해 사용.
직접 DB에 접근하여 data를 insert, delete, select등 기능 수행.
MVC패턴의 Model에서 이와 같은 일을 수행.

 

DTO(Data Transfer Object)

계층간 데이터 교환을 위한 자바 빈즈(Java Beans)를 의미.
로직을 가지지 않는 데이터 객체.
Database에서 Data를 얻어 Service나 Controller 등으로 보낼때 사용하는 객체.
getter/setter 메소드만 가진 클래스.

 

 

 

VO(Value Object)

:값 오브젝트로 값을 위해 쓰임.
Read-Only특징을 가짐(사용하는 도중에 변경 불가능하며, 오직 읽기만 가능)
DTO와 유사하지만 VO는 getter기능만 존재.

DTO vs VO
:DTO는 인스턴스 개념이고 VO는 리터럴 값 개념이다.
VO는 값들에 대해 Read-Only를 보장해줘야 존재의 신뢰성이 확보되지만 DTO의 경우는 단지 데이터를 담는 그릇의 역할.
값은 그저 전달되어야 할 대상일 뿐이다.