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 등으로 보낼 때 사용하는 객체를 말합니다.
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 |