inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

ASP.NET Core MVC +ASP.NET Core +REST API +.NET 8.0

DTO 여러개 대신 하나로

174

최봉석

작성한 질문수 2

0

과정에서 보면

CreateUserDTO
GetAllUserResponseDTO
GetUserDTO
GetUserRsponseDTO

이렇게 생성을 했는데 그냥 UserDTO 하나만 생성해서 사용하면 안되는 건가요?

 

C# mvc rest-api 아키텍처 mssql ef-core asp.net-core

답변 2

0

개발자Park

안녕하세요.개발자park입니다.

UserDTO하나로 통일하는게 정석입니다.

그러나 관리가 힘들어질 수 있습니다.

가령 Controller에서 2개의 Action(method)을 예로 들어보겠습니다.

=======================

정석대로

=======================

가령 GetUser라는 Action을 예로 들면

UserViewModel GetUser(UserDTO,string role)

{

...

}

UserViewModel DeleteUser(UserDTO)

{

...

}

ViewModel이 비대해지고 BLL에 전달시 파라미터도 증가되는 것을 확인하실 수 있습니다.

그렇기에 애초에 간단하게 DTO를 나눴다고 생각하시면 되겠습니다.

정석대로 하셔도 문제는 없겠습니다.

감사합니다.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 최봉석님께서 질문해주신 DTO 관련 내용에 대해 답변 드리겠습니다.

DTO(Data Transfer Object)는 애플리케이션 계층 간 데이터 전송을 위해 사용되는 객체로, 각기 다른 용도의 데이터를 담기 위해 여러 개의 DTO를 생성하는 것이 일반적입니다. 이는 데이터 전송 시 목적에 맞는 데이터만 포함되어 코드의 명확성을 높이고, 불필요한 데이터 노출을 방지하기 위함입니다.

여러 개의 DTO를 사용하는 이유:

  1. 용도에 맞춤화: 각 DTO는 특정 작업에 맞춤화되어 있습니다. 예를 들어, CreateUserDTO는 사용자 생성 작업에 필요한 데이터만 포함하고, GetUserDTO는 사용자 조회에 필요한 데이터만 포함합니다.

  2. 보안 및 데이터 보호: 필요한 데이터만 포함시킴으로써, 잘못된 데이터가 다른 계층으로 전달되는 것을 방지할 수 있습니다.

  3. 유지보수성: 각각의 작업에 맞는 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