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

김태수님의 프로필 이미지
김태수

작성한 질문수

실전! Querydsl

DTO 관련 질문입니다.

해결된 질문

작성

·

507

1

먼저 좋은 강의 감사합니다 :)

매 강의마다 좋은 내용을 알려주셔서 감사합니다.

하나의 Entity에서 여러 서비스 로직을 실행하기 위해

    1) 각 서비스에 맞는 DTO를 생성하는 방법과

    2) 통합 DTO를 만든뒤 그 DTO에서 각 서비스에 필요한 요소들을 빼오는 방법

제가 생각한 위 두가지 방법의 단점은 아래와 같습니다.

    1) DTO를 너무 많이 생성함

    2) 통합 DTO 중 사용하는 서비스의 필요 요소가 적으면 전부 DTO로 담는것이 비효율적임

질문 내용입니다!

    1) 혹시 제가 생각한 두 방법의 단점이 맞는지 궁금합니다.

    2) 만약 위 상황처럼 하나의 Entity를 여러 서비스에서 이용할 때 DTO를 어떤 방식으로 구성하면 좋을지 궁금합니다.

감사합니다.

답변 2

3

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

안녕하세요. 태수님 좋은 질문입니다^^

이미 장점 단점을 충분히 알고 고민을 많이 하셨네요.

결론은 상황에 맞게 둘다 사용해야 합니다!

예를들어서 너무 차이가 나는 서비스 API 들은 명확하게 DTO를 분리해야 합니다.

반면에 유사한 API에 비슷한 역할을 하는 DTO라면 통합해서 하나로 관리해야 합니다.

여기서 DTO를 통합할지 분리할지 단순히 데이터가 유사한 것도 판단의 근거가 되겠지만, 사실 더 중요한 판단 근거는 향후 변경의 라이프사이클 입니다.

예를 들어서 A 기능을 하는 API와 B 기능을 하는 API가 있는데, 하나는 고객사이드 API이고, 하나는 어드민API 라면 처음 개발당시의 모습이 완전 100% 똑같아도, 이 API는 변경의 라이프라이클이 다릅니다. 바로 이 변경의 라이프사이클이 중요한 포인트가 됩니다.

변경의 라이프사이클이 같고, 데이터도 유사하다면 같은 DTO를 사용하면 됩니다.

반면에 변경의 라이프사이클이 다르다면, 데이터가 유사해도 다른 DTO를 사용하는 것이 좋습니다.

감사합니다^^

1

김태수님의 프로필 이미지
김태수
질문자

친절하고 자세한 답변 감사합니다 :)

김태수님의 프로필 이미지
김태수

작성한 질문수

질문하기