[Java] DAO, DTO, VO 란?

문준일·2024년 7월 17일
0

DAO (Data Access Object)

DB의 데이터에 접근하기 위한 객체를 뜻한다.
DB에 접근하기 위한 로직을 분리하기 위해 사용한다.
직접 DB에 접근하여 data를 삽입, 삭제, 조회 등 조작할 수 있는 기능을 수행한다.

DTO (Data Transfer Object)

데이터를 전달하기 위한 객체
DTO는 로직을 가지지 않는 순수한 데이터 객체(getter & setter 만 가진 클래스)
여러 Layer 간 데이터를 주고 받을 때 사용할 수 있고 주로 View와 Controller 사이에서 활용

VO (Value Object)

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

DTO와 VO의 차이점

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

값 자체에 의미가 있는 VO와 전달될 데이터를 보존해야하는 DTO의 특성상 개념이 다르다.

profile
하나씩 실천하는 개발자

0개의 댓글