작성
·
227
0
안녕하십니까, 강의에서는 todoService 인터페이스에 entity와 dto를 변환하는 메서드를 구현하였는데, 저는 평소에 dto 클래스에 dtoToEntity 메서드를, 엔티티 클래스에 EntityToDto 메서드를 만들어서 사용하였는데 강사님의 방법가 제가 사용하는 방법 중 어느 게 더 나은지, 그리고 그 이유를 알 수 있을까요?
답변 1
2
말씀하신 방법도 나쁜 방법이 아닙니다. 예를 들어 Projections.constructor( )를 이용하는 경우를 생각해 보면..
TodoDTO안에 TodoEntity를 생성자로 받도록 설계하는 방식을 이용한다면
@Query("select t from TodoEntity t where t.mno = :mno")
Optional<TodoDTO> getDTO( @Param("mno") Long mno);
와 같이 @Query는 엔티티를 가져오지만 반환은 DTO등으로 할 수가 있죠..
이러한 편리함도 있지만 ..
DTO안에 Entity와 관련된 코드가 있으면 그만큼 순수(? 응집?)함은 떨어지게 됩니다. Java Bean인데.. 의존적인 상황이 생기게 되니까요..
책에서는 사실 가능하면 순수한 POJO스러운 코드를 만들고 싶었기 때문에 Service쪽에서 처리하는 방식을 사용했습니다. 하지만 Projections등을 좀 더 적극적으로 쓴다면 DTO안에 엔티티로 변환하거나 엔티티에서 DTO로 변환하는 코드가 있는게 편리할 수 있습니다.