본문 바로가기
Programming/Java

[Java] DAO, DTO, VO의 차이

by hongchii 2021. 5. 4.
728x90
반응형

DAO, DTO, VO를 보신 적이 있을겁니다. 저는 DAO, DTO, VO가 모두 동일한 것으로 알고 있었는데 이번에 세가지의 차이가 뭔지 알기위해 검색하면서 지금까지 제가 알고있던게 잘못되었고, 분명한 차이가 있다는 것을 알게 되었습니다.

 

 

 

DAO (Data Access Object)

DAO는 데이터 접근 객체라고 할 수 있습니다. DataBase 접근을 하기 위한 로직과 비지니스 로직을 분리하기 위해 사용합니다. 그렇기때문에 DB Connection 로직까지 설정되어있는 경우가 많고, CRUD를 전담합니다. (요즘은 사용하는 일이 드물다고는 합니다.)

 

 

DTO(Data Transfer Object)와 VO(Value Object)

DTO는 순수한 데이터 객체이며, Controller, Service, View등 계층간 데이터 교환을 위해 사용되는 객체입니다. 로직을 갖지 않으며, getter와 setter 메서드만 가진 클래스입니다. 여기에 추가적으로 toString(), equals()등의 Object클래스 메서드를 작성할 수 있습니다. 그리고 가변의 성격을 가집니다.

 

반면 VO는 DTO와 거의 동일한 개념으로 쓰이지만 값(Value)을 위해 쓰이는 객체로 불변(read only)의 속성을 가지며, 보통 getter의 기능만을 포함합니다.

 

 

 

 

 

 

 

 

 

 

 

참고,

berrrrr.github.io/programming/2019/11/03/dao-vo-do-dto/

 

DAO vs DTO vs VO vs BO 차이

DAO(Data Access Object), DTO(Data Transfer Object), VO(Value Object), BO(Business Object) 간에 어떤 차이가 있는지 알아보자.

berrrrr.github.io

 

 

728x90
반응형

댓글