관리 메뉴

웹개발자의 기지개

[ASP.NET Core MVC] DTO (Data Transfer Object) 알아보기 본문

ASP.NET/ASP.NET Core

[ASP.NET Core MVC] DTO (Data Transfer Object) 알아보기

http://portfolio.wonpaper.net 2022. 10. 30. 00:07

ORM 코딩 기법중에 DTO, DAO 등의 방식으로 클래스를 만드는데, 

C# 에서도 이러한 흐름상에서 DTO 형태등으로 프로그램을 할 수 있다.

 

DTO 관련 조은 포스팅글이 있어서 꼭 보기 바란다.

 

https://www.telerik.com/blogs/dotnet-basics-dto-data-transfer-object

 

.NET Basics: DTO (Data Transfer Object)

Something common in ASP.NET Core development is data transfer. A good practice is to use DTOs that will define how the data will be sent over the network.

www.telerik.com

 

상기 포스팅글을 살펴보면, DTO 기법을 이용하면 아래와 같은 이점이 있다고 한다.

 

1. 데이터베이스 계층에서 서비스 계층을 구분할수 있다.

2. 특정 클라이언트에게 받을 필요가 없는 특수한 속성들은 숨길 수가 있다.

3. 해당 클래스 전체의 속성모두를 사용하지 않고, 일부만으로 구성하기 때문에 전송되는 데이터량(payload size)을 줄일 수 있다.

4. 클라이언트에게 휠씬 더 편리한 중첩객체를 이용하여 조작할 수 있다.

5. 오버하여 전달되는 포스트량을 줄일 수 있다.

 

간단히 말해서 해당 클래스의 속성들 모두를 이용하여 코딩하지 않고 간소화한 일부 속성을 바탕으로 정리된 DTO 클래스로 원하는 코딩을 해나가는 기법이라고 할 수 있겠다.

 

최적의 전송량으로 객체를 만들어서 알맞게 쓰는 클래스 기법이다.

 

1
public record Seller(Guid Id, string Name, DateTime CreatedAt, string Email, string Address, decimal DiscountFactor);
cs

 

1
public record SellerDto(string Name, string Email);
cs

 

위의 소스처럼 Seller 의 모든 속성들을 다 이용하지 않고, SellerDto 형태로 일부 속성들로 별도로 모아서 사용한다고 보면된다.

 

 

 

 

 

 

Comments