본문 바로가기
개발/Java

[Java] DTO, DAO, VO 차이 알아보기

by devhooney 2023. 10. 10.
728x90

DTO (Data Transfer Object), DAO (Data Access Object), VO (Value Object)는 데이터 관련 프로그래밍에서 자주 사용되는 용어이다.

1. DTO (Data Transfer Object)
용도: 데이터를 전송하거나 데이터베이스에서 검색된 데이터를 저장하는 데 사용
특징: DTO는 주로 데이터 전송과 관련된 역할을 하는 객체로, 특정 비즈니스 로직을 포함하지 않는다. 주로 데이터의 구조를 정의하고, 데이터를 한 곳에서 다른 곳으로 전송하는 데 사용된다. 예를 들어, 웹 요청에서 데이터를 수신하거나 웹 응답으로 데이터를 보낼 때 사용할 수 있다.
예시: 사용자 등록 요청을 처리하는데 사용되는 DTO, 데이터베이스에서 검색한 사용자 정보를 저장하는데 사용되는 DTO 등.

 


2. DAO (Data Access Object)
용도: 데이터베이스와 상호작용하기 위한 객체. 데이터베이스와 통신하고 데이터를 검색, 생성, 수정, 삭제하는 데 사용된다.
특징: DAO는 주로 데이터베이스와의 통신과 관련된 비즈니스 로직을 처리하는 객체. 데이터베이스 연결, SQL 쿼리 실행, 결과 데이터를 DTO 또는 엔티티로 변환하는 등의 역할을 수행한다.
예시: 사용자 정보를 데이터베이스에 저장하고 검색하는 DAO, 주문 정보를 업데이트하고 삭제하는 DAO 등.

 


3. VO (Value Object)
용도: 비즈니스 로직에서 사용되는 값 객체. VO는 불변성(Immutable)을 가지며, 비즈니스 도메인의 값을 표현하기 위해 사용된다.
특징: VO는 주로 비즈니스 로직에서 데이터를 나타내는 데 사용되며, 값의 의미를 중요시하고 변경되지 않는 특성을 가진다. 예를 들어, 날짜 범위, 금액, 좌표 등의 값을 나타내는 데 사용된다.
예시: 주문의 금액을 나타내는 금액 VO, 좌표를 표현하는 좌표 VO 등.

 

 

요약하면, DTO는 데이터 전송과 관련된 객체, DAO는 데이터베이스와의 상호작용을 처리하는 객체, VO는 비즈니스 로직에서 값 객체를 나타내는 객체. 이들은 각각 다른 용도와 특성을 가지므로 상황에 따라 적절한 용도에 사용해야 한다.

728x90