ex) 유저가 입력한 데이터를 DB에 넣는 과정
1. 유저가 자신의 브라우저에서 데이터를 입력하여 form에 있는 데이터를 DTO에 넣어서 전송
2. 해당 DTO를 받은 서버가 DAO를 이용하여 데이터베이스로 데이터를 집어넣음
Entity의 값이 변하면 Repository 클래스의 Entity Manager의 flush가 호출될 때 DB에 값이 반영되고, 이는 다른 로직에도 영향을 미침. 때문에 View와 통신하면서 필연적으로 데이터의 변경이 많은 DTO 클래스를 분리해주어야 함.
도메인 설계가 아무리 잘 되었다고 해도, Getter만을 이용해서 원하는 데이터를 표시하기 어려운 경우가 발생할 수 있는데, 이 경우에 Entity와 DTO가 분리되어 있지 않다면 Entity 안에 Presentation을 위한 필드나 로직이 추가되어 객체 설계를 망가뜨릴 수 있음. 때문에 분리한 DTO에 Presentation 로직 정도를 추가해서 사용하고 Entity에는 추가하지 않아 도메인 모델링을 깨뜨리지 않음