본문 바로가기

언어공부/JDBC&오라클&SQL

JDBC - DAO / DTO / VO

JDBC - DAO /  DTO / VO에 대해서 알아보자.

DAO(Data Access Object)-데이터 접근 객체

데이터베이스의 데이터에 접근하는 객체이다.  데이터베이스를 사용해 데이터 조작하는 기능을 하는 객체를 뜻한다.

필요한 인터페이스를 DAO에 넣고, DAO는 해당 인터페이스를 구현한 객체를 사용자에게 전달한다. 

 

데이터베이스에 대한 접근을 DAO가 하여 데이터베이스의 상세한 사항을 노출시키지 않고 특정 데이터의 일부 동작을 제공하게 된다. 또한 다수의 원격호출을 통한 오버헤드를 DTO, VO를 통해 줄일 수 있고 다수의 데이터베이스 호출문제를 해결한다. 또한 단순히 읽기만 하는 연산이므로 트랜잭션 간의 오버헤드를 감소할 수 있다.

 

 


DTO(Data Transfer Object)-데이터 전송 객체

프로세스 간에 데이터를 전달하는 객체이다. 프로세스 간 통신이 일반적으로 원격 인터페이스(예: 웹 서비스)로 재정렬하면서 이루어지게 되는데 여기에서 각 호출의 비용이 많다는 점을 동기로 하여 이용하게 된다.

 

각 호출의 비용이 큰 것이 클라이언트와 서버 간 왕복 시간과 관련되기 때문에 호출의 수를 줄이기 위해 여러 호출에 의해 전송되는 데이터를 축적하면서 오직 하나의 호출만으로 서비스되는 객체인 DTO를 사용하는 것이다.

 

VO와 동일하게 데이터를 저장하여 사용한다. DTO는 같은 시스템이 아닌 다른 시스템으로 전달하는 작업을 처리하는 객체이다. 

 


VO(Value Object)-값 객체

데이터 값을 담고 있는 객체로, DTO와 비슷하지만 VO는 Readonly 속성의 객체이다.  VO는 객체의 식별성이 아닌 속성의 값을 중요하게 여긴다. 속성 값이 동일하다면 동일한 객체로 인지한다. Value Object는 불변으로 한번 생성되면 이후 내부 값을 바꿀 수 없다.(setter(수정자) 허용 x)