변환 로직의 위치?
- Dto -> Entity 에 의존하는 것은 당연히 해야할 일
- Entity -> Dto에 의존해서는 안됨
- Entity.toDto ( x )
- Dto.of (entity) (ㅇ)
<aside>
💡 쉽게 말해서 Dto에 변환 로직이 들어가야 합니다.
→ 참고
</aside>
순환참조 오류 방지
- Dto < - > Entity 가 서로 참조 하면 안됩니다.
- 참조는 무조건 한 방향으로만 가야합니다.
- Dto -> Entity
- Dto.toEntity + Dto.of(entity)
<aside>
❗ 조회 (Query) 기능에 한해서는 Entity를 가져오기 보다는 필요한 데이터만 골라서 조회 하는 것이 중요한 시점이 옵니다.
그 외 등록/수정/삭제 (Command) 는 Entity를 가져와서 JPA 의 기능으로 처리하지만,
조회는
- 사용하지 않는 필드를 모두 가져오는 것에 대한 비효율
- 여러 테이블을 Join, Group By, count, max 등 복잡한 기능이 필요할때 Entity가 처리할 수가 없음
그래서 간단한 기능 외에는 이후에 조회는 Dto를 통해 결과를 반환하는 일이 많아지게 됩니다.
</aside>
Reference