DTO 여러개 대신 하나로
174
작성한 질문수 2
과정에서 보면
CreateUserDTO
GetAllUserResponseDTO
GetUserDTO
GetUserRsponseDTO
이렇게 생성을 했는데 그냥 UserDTO 하나만 생성해서 사용하면 안되는 건가요?
답변 2
0
안녕하세요.개발자park입니다.
넵UserDTO하나로 통일하는게 정석입니다.
그러나 관리가 힘들어질 수 있습니다.
가령 Controller에서 2개의 Action(method)을 예로 들어보겠습니다.
=======================
정석대로
=======================
가령 GetUser라는 Action을 예로 들면
UserViewModel GetUser(UserDTO,string role)
{
...
}
UserViewModel DeleteUser(UserDTO)
{
...
}
ViewModel이 비대해지고 BLL에 전달시 파라미터도 증가되는 것을 확인하실 수 있습니다.
그렇기에 애초에 간단하게 DTO를 나눴다고 생각하시면 되겠습니다.
정석대로 하셔도 문제는 없겠습니다.
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다. 최봉석님께서 질문해주신 DTO 관련 내용에 대해 답변 드리겠습니다.
DTO(Data Transfer Object)는 애플리케이션 계층 간 데이터 전송을 위해 사용되는 객체로, 각기 다른 용도의 데이터를 담기 위해 여러 개의 DTO를 생성하는 것이 일반적입니다. 이는 데이터 전송 시 목적에 맞는 데이터만 포함되어 코드의 명확성을 높이고, 불필요한 데이터 노출을 방지하기 위함입니다.
여러 개의 DTO를 사용하는 이유:
용도에 맞춤화: 각 DTO는 특정 작업에 맞춤화되어 있습니다. 예를 들어,
CreateUserDTO는 사용자 생성 작업에 필요한 데이터만 포함하고,GetUserDTO는 사용자 조회에 필요한 데이터만 포함합니다.보안 및 데이터 보호: 필요한 데이터만 포함시킴으로써, 잘못된 데이터가 다른 계층으로 전달되는 것을 방지할 수 있습니다.
유지보수성: 각각의 작업에 맞는 DTO를 사용하면 코드의 일관성을 유지할 수 있어 유지보수가 용이합니다.
동일한 구조를 가지는 DTO로 통일하는 것도 가능하겠지만, 이는 데이터의 목적과 보안 측면에서 문제가 발생할 수 있습니다. 따라서 각 용도에 맞게 DTO를 설계하는 것이 바람직합니다.
현재 수강하시는 강의에서는 이러한 점을 고려하여 다양한 DTO를 정의하고 있는 것으로 보입니다.
참고로, 관련된 유사한 질문에 대한 더 많은 설명은 DTO에 대해 자세히 알고 싶습니다라는 게시글에서 확인하실 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
20) 16. 저장프로시저 쪽 new MapperConfiguration(cfg => { })
1
54
1
using (SqlConnection ~)을 하는 이유가 뭔가요?
0
115
2
이후 예정된 강의 문의를 드립니다
0
66
1
12_3강 AutoMapper 설명 중에 MapperConfiguration
2
86
1
Business Layer 종속성 추가 불가 문제
0
106
3
Console.WriteLine
0
62
1
iis 배포 후 view페이지 수정
0
132
2
8장 Controller 질문
0
80
2
CS0618 SqlConnection
0
261
1
EF로 만든 프로젝트를 개발서버에 올리니, 처음 로딩속도가 많이 느리네요.
0
183
2
SqlConnection관련 질문
0
124
2
12강 듣던중...Controller.cs 질문입니다.
0
128
1
ASP.NET Core MVC를 비동기로 처리하는 이유가 무엇일까요?
0
221
1
프로젝트 배포 질문있습니다
0
147
2
MSSQL 설치 시 오류 발생
0
632
2
클래스 라이브러리 추가시
0
239
1
DB에서 조회된 다건의 데이터를 처리할 때
0
209
1
cshtml.css, cshtml.cs 비하인드 코드 추가 방법
0
416
1
로그인에서 받아온 Session을 활용하고 자 할 때
0
311
1
Request.Query는 배열로는 받을 수 없나요?
0
368
2
Single View Engine은 뭘까요?
0
195
1
Results API가 뭔가요?
0
231
1
QueryString 대소문자 구분
0
455
1
화면 단이 아닌 서비스 단에서 파라미터 추가
0
231
1





