실제 프로젝트를 작성할 때는 엔티티 객체를 영속 계층 바깥쪽에서 사용하는 방식 보다는 DTO(Data Transform Object)를 이용하는 방식을 권장한다.
각 계층에서 주고받는 우편물이나 상자의 개념
JPA를 이용하게 되면 엔티티 객체는 단순히 데이터를 담는 객체가 아니라 실제 데이터베이스와 관련이 있고, 내부적으로 엔티티 매니저(entity manager)가 관리하는 객체이다.
DTO가 일회성으로 데이터를 주고받는 용도로 사용되는 것과 달리 생명주기(life cycle)도 전혀 다르기 때문에 분리해서 처리하는 것을 권장한다.
웹 애플리케이션을 제작할 때는
HttpServletRequest나HttpServletResponse를 서비스 계층으로 전달하지 않는 것을 원칙으로 한다. 유사하게 엔티티 객체는 JPA 외에서 사용하지 않는 것을 권장한다.