BackEnd/Spring

[Spring] DAO, DTO, VO란?

개발자들아제발자 2022. 6. 10. 00:26

DAO(Data Access Object)?

DAO는 DB data에 접근하기 위한 객체로 직접 DB에 접근하여 데이터를 삽입, 삭제, 조회 등 조작할 수 있는 기능 수행. 

DB에 접근하기 위한 로직 & 비지니스 로직을 분리하기 위해 사용합니다.

 

 

DTO(Data Transfer Object)?

DTO는 계층 간(Controller, View, Business Layer) 데이터 교환을 하기 위해 사용하는 객체입니다.

DTO는 로직을 가지지 않는 순수한 데이터 객체(getter & setter만 가진 클래스)입니다. 

DTO는 데이터 전송(이동) 객체라는 의미를 가지고 있고, 주로 비동기 처리를 할 때 사용합니다.

DB의 데이터를 Service나 Controller 등으로 보낼 때 사용하는 객체를 말합니다.

 

DTO 예제

VO(Value Object)?

VO는 Read-Only속성을 가진 불변 오브젝트입니다.

VO의 핵심 역할은 equals()와 hashcode()를 오버라이딩 하는 것입니다.

 

 

DTO vs VO?

DTO는 가변의 성격(getter/setter)을 가진 클래스이며 데이터 전송을 위해 존재합니다.

그에 반해 VO는 값 그 자체의 의미를 가진 불변(getter) 클랙스(Read-Only)를 의미합니다.

 

DTO는 인스턴스 개념이라면 VO는 리터럴 개념

즉, VO는 특정한 비즈니스 값을 담는 객체고, DTO는 계층간 전송 용도로 쓰이는 객체를 말합니다.

'BackEnd > Spring' 카테고리의 다른 글

[Spring] AOP란?  (0) 2022.07.28
[Spring] POJO란?  (0) 2022.06.19
[Spring] IoC와 DI란?  (0) 2022.06.09
[Spring] 스프링(Spring)이란?  (0) 2022.06.09