[DAO] DAO, DTO, Entity Class의 차이 - Heee's Development Blog
DTO (Data Transfer Object)
- DTO는 서로 다른 계층 간에 데이터를 전송하는데 사용되는 객체이다.
- DB의 데이터를 Service나 Controller로 보낼 때 사용된다.
- 로직을 가지고 있지 않으며 getter/setter 메서드만 가진다.
Entity Class
- 실제 DB의 테이블과 매칭될 클래스
- 클래스 안에서 로직 메서드를 구현하여 외부에서 클래스의 getter 메서드를 사용하지 않도록 한다.
- 구현된 메서드는 주로 Service Layer에서 사용된다.
DTO와 Entity를 분리하는 이유
- View Layer와 DB Layer의 역할을 철저하게 분리하기 위함이다.

- Domain Model을 제대로 설계하더라도 View에서 원하는 정보를 표시하기에 어려운 경우가 있다. 이런 경우에 Domain Model에 Presentation을 위한 로직을 추가하게되어 모델링의 순수성을 깬다.