- 도메인(문제 영역)을 분석한 결과로 도출된 객체
- 비즈니스 로직을 구현하는 데 사용
- 데이터 모델링에 사용되는 객체
- 데이터베이스와 연결된 객체
- 도메인 객체가 데이터베이스와 상호작용하기 위한 데이터 접근 계층을 제공
도메인 객체는 시스템의 도메인을 모델링하는 데에만 집중하고 데이터베이스와의 상호작용은 엔티티가 담당한다.
도메인 객체와 엔티의 구분을 두지 않아 도메인 객체는 엔티티의 데이터를 직접적으로 처리하며 데이터를 저장하고 검색할 때 엔티티의 기능을 사용한다.
경우에 따라 다를 수 있다.
도메인 객체와 엔티티를 분리하는 것은 모델링을 명확하게 하면서 유지보수성을 높일 수 있고
도메인 객체와 엔티티를 통합하면 코드를 간결하게 만들어 코드 복잡성을 줄이고 개발 시간을 단축시킬 수 있다.
도메인과 엔티티를 분리하면 도메인에서 jpa 오토 세이브 기능과 같은 여러 기능을 쓸 수 없다.
따라서 트레이드 오프 관계일 뿐, 장단점을 생각해서 잘 고민하고 사용해야 할 것 같다.