DTO?? 뭔데???
1. DTO
- DTO(Data transfer object) : 데이터 전송 객체, 즉 네트워크 간에 데이터를 어떤 식으로 보낼지를 정의한 객체이다.
쉽게 말하면, 어떠한 값이 어떤 타입을 가지고 이 값이 필수인지 옵션인지 정의하기 위한 파일이다.- 파일을 만들때에는 어떤 부분을 검증할것인지를 정하고 만들면 된다.
1) 필요한 이유
- 클라이언트에서 전송하는 객체는 기본적으로 타입을 보장하지 않는다. 그래서 데이터를 받기 전에 타입 검사와 유효성 검사를 통해 문제를 예방하는 것이 좋다. 그런데, DTO를 설정하면 이 부분을 실행할 수 있다.
2) 예제
export class CreateUserDto {
id: number; // 유저 고유 아이디
name: string; // 유저 이름
}
export class UpdateUserDto {}
- DTO는 우리가 전송받을 클래스 객체를 선언한다. 유저를 생성하는 부분, 수정하는 부분으로 만들어져 있다. 위와 같이 DTO를 선언하면 전송 데이터 형식을 알 수 있다.
import { Field, Int, InputType } from '@nestjs/graphql';
@InputType()
export class CreateCoffeeInput {
@Field(() => String)
menu: string;
@Field(() => Int)
price: number;
@Field(() => Int)
kcal: number;
@Field(() => Int)
saturatedfat: number;
@Field(() => Int)
protein: number;
@Field(() => Int)
salt: number;
@Field(() => Int)
sugars: number;
@Field(() => Int)
Caffeine: number;
}
- 내 과제의 DTO파일이다.
- @InputType() : 타입을 정해 주었다.
- cf. Field는 데이터베이스의 저장하는 타입이다.
마무리
=> 솔직히, 거창한건 없다. 쉽게 말해 DTO는 유효성 검사 부분에 대해 편리함을 주고, 어떤 타입인지 어떤 부분을 검증할것인지에 대한 파일일뿐이다.
Author And Source
이 문제에 관하여(DTO?? 뭔데???), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ko1586/DTO-뭔데저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)