인프런 커뮤니티 질문&답변

Space님의 프로필 이미지

작성한 질문수

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

변경 감지와 병합(merge)

DTO 와 Form

작성

·

608

3

Controller

Controller

DTO

DTO

SERVICE

service

Book Entity

위와 같은 DTO를 만들어 넘겨주는 형태가 

1.Controller->Service로 넘어가는 파라메터가 많을경우 최적화가 잘 되어있는 형태가 맞는지 궁금합니다!

2.BookForm 과 DTO의 분리

이 예제에서는 BookForm 과 ItemUpdateDTO 과 같지만,

실무에서는뷰에서 사용하는 객체와, DTO 객체는

필드가 다르거나 다른 로직이 들어가게 되므로 분리하는것으로 이해하였습니다.

만약 뷰와 서비스에서 필요로하는 필드가 같다면, 뷰에서 받는 파라메터를 BookForm이 아닌 UpdateItemDTO로 받아도 괜찮은지 궁금합니다

답변 2

1

Space님의 프로필 이미지
Space
질문자

답변 감사드립니다!

1

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. Space님

네 잘 하셨습니다.

참고로 패키지 의존관계에 대한 부분인데요. 지금 Book 엔티티가 UpdateItemDto를 참조하고 있습니다. 이 경우 패키지 의존관계만 조심하면 됩니다. UpdateItemDto가 있는 패키지가 Book과 같은 패키지에 두시거나 또는 가급적 다른 패키지를 가급적 의존하지 않는 것이 좋습니다.

만약 뷰와 서비스에서 필요하는 필드가 완전히 같으면 BookForm은 실용적인 관점에서 생략할 수 있다 생각합니다.

감사합니다.

Space님의 프로필 이미지
Space
질문자

안녕하세요! 영한님!

 영한님께서 올려주신 여러가지 강의를 보고 코드를 작성하다가,
제가 예전에 질문하고 피드백 주셨던 부분이 생각나서 질문드리려고 합니다.

 이때는 의문이 들었던점이 정확히 정리가 안되어 더 질문드리지 못하고 넘어갔었습니다.
이제 좀 정리가 되어서 재질문 드리려고합니다.

 

 Book 과 같은 Entity는 하나의 도메인에서 사용되는게 아니라 광범위하게 사용되고,
현재 패키지를 어떻게 나눌지 감이 잘 안잡힙니다.

따라서 현재
(Book) Entity => example.xxx.model
에 두었고

dto => example.xxx.model.dto 
이렇게 두었습니다.

이런경우 위에서 말씀하신 Entity가 dto를 참조하는데 다른 패키지에 있는 상황입니다.

 이럴 때는 BookService에서 메소드로 Dto를 받고, Entity를 조작하는 형태로 변경해야 할까요?
아니면 설계가 잘못된것인지, 패키지를 어떻게든 같이 놓는 방법이 맞을지 궁금합니다.
개념에 구멍이 뚫려있는 느낌입니다 ㅜㅜ

Space님의 프로필 이미지

작성한 질문수

질문하기