DAO

DAO란 Data Access Object로 데이터 베이스의 값에 직접 접근하는 계층을 의미한다

Spring Data Jpa의 코드에서 보면 Repository 인터페이스가 DAO라고 볼 수 있다.


DTO

DTO란 Data Transfet Object로 계층 간의 값을 주고 받기 위한 용도로 사용된다. request, response

등이 DTO에 포함된다. 또한 DTO는 비즈니스 로직이 없어야 하고 순수한 데이터만 담긴 객체여야 한다.


VO

VO란 Value Object로 DTO와 기능은 비슷하지만 read-only 속성을 가지는 객체이다


DTO 와 VO의 차이

Dto는 가변의 성격을 가진 클래스이며 계층 간의 데이터 전송을 위한 객체이다.

Vo는 값 그 자체의 의미를 갖는 불변 성격을 가진 클래스이며 특정한 비즈니스 값을 담는 객체다