MemberInfoUpdateRequest, MemberRegisterRequest의 패키지 위치
134
작성한 질문수 4
학습중에 MemberInfoUpdateRequest, MemberRegisterRequest와 같은 객체들은 어댑터에서도 사용하고, 애플리케이션에서도 사용하고, 도메인 내부로직에도 사용하는데 도메인 패키지 내에 위치하는게 맞는지 의문이 들어서 질문드립니다!
답변 2
3
계층간 의존관계를 생각하면 현재 Request로 끝나는 파라미터를 담은 레코드 클래스는 도메인에 있어야 계층형 아키텍처의 의존 관계 규칙을 지킬 수 있습니다. 도메인이 가장 안 쪽이 있기 때문에 자신을 포함해서 외부 계층에서 의존해도 안전합니다. 이걸 다른 계층으로 옮기면 계층간 단방향의 의존관계가 깨집니다.
0
안녕하세요, 인프런 AI 인턴입니다. 처아미나님께서 주신 질문에 대해 답변드리겠습니다.
DTO(Data Transfer Object) 위치에 대한 고민
MemberInfoUpdateRequest와 MemberRegisterRequest 같은 객체는 주로 데이터 전송을 목적으로 합니다. 이러한 객체의 패키지 위치를 결정하는 데에는 몇 가지 고려할 점이 있습니다:
사용 범위에 따른 패키지 구분: DTO가 사용되는 주요 컨텍스트에 따라 패키지를 결정하는 것이 좋습니다.
- 도메인 논리 사용: 도메인 내부에서 비즈니스 로직과 밀접하게 연관된 경우, 도메인 패키지에 위치시키는 것이 적절할 수 있습니다.
- 애플리케이션 계층 사용: 요청 데이터가 여러 계층에서 활용된다면, 애플리케이션 계층에 위치시키는 것이 관리 측면에서 유리할 수 있습니다.
- 도메인 논리 사용: 도메인 내부에서 비즈니스 로직과 밀접하게 연관된 경우, 도메인 패키지에 위치시키는 것이 적절할 수 있습니다.
응집력과 결합도: DTO는 주로 데이터를 담아 여러 계층 간 상호작용을 지원하기 위한 객체입니다. 따라서, 도메인 로직과 강하게 결합되지 않는 한 도메인 패키지에 직접 포함시키는 것이 최적이지 않을 수도 있습니다.
패키지 구조 유연성: 프로젝트의 구조에 따라 DTO의 위치는 유동적일 수 있습니다. 다양한 관점에서 고려하고 팀 내의 컨벤션에 따르는 것이 좋습니다.
관련 내용에 대해 더 자세히 배우고자 한다면 아래의 게시물을 참고해보세요:
- Member의 등록과 수정에 대한 API 설계
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
N+1 관련해서 질문있습니다.
0
46
3
도메인 모델에서 관계와 규칙을 구분하는 방법
0
61
2
헥사고날 아키텍처에서의 배치, 시큐리티, 비동기 이벤트 처리는 어떻게 하나요?
0
140
2
어댑터에서 도메인에 직접 의존하는 경우에 대해
0
136
2
Member 도메인이 PasswordEncoder를 받는 구조 질문 있습니다.
0
118
2
MemberService와 EmailSender 책임 분리에 대한 질문
0
111
2
NonNullApi를 NullMarked로 대체하라고 합니다.
0
133
2
39. 문서와 코드 다듬기 updateInfo 테스트 질문 있습니다.
0
82
2
Repository Adapter 설계에 대해 피드백을 부탁드립니다
0
112
2
헥사고날 part2 강의 출시 예정일 문의 드립니다.
0
264
2
PT 문의사항
0
104
1
초기 어플리케이션 구동 시 compose.yml 파싱 오류
0
153
2
애플리케이션의 JPA 리턴과 도메인 모델
0
131
2
애그리거트 루트의 하위 도메인들의 depth가 깊어질 때 문의
0
140
2
페이징 처리를 해야한다면 어떻게 해야할까요?
0
198
2
애그리거트의 repository
0
128
2
Domain Expert가 정확히 어떤 역할을 하는 사람인가요?
0
239
1
회원 애플리케이션 서비스 테스트 (1)
0
110
2
정적 팩토리 메서드 관련 질문드립니다!
0
112
2
spotbug + @NonNullApi 로만 Null 방어가 될까요?
0
132
2
required 포트에 관해서
0
96
2
혹시 다음 편은 언제쯤 오픈할까요?
0
173
2
서비스 단위 테스트 코드 작성
0
104
2
domain 모듈에 entity를 정의한다고 했을때
0
106
2





