서론 프로세스간 데이터 전달을 위해서 DTO(Data Transfer Object) 사용한다. NestJS에서도 MVC layer간의 데이터 전달이나 request 요청을 받을 때도 DTO를 사용할 수 있다. 이때 한 Domain에 대해서, 여러 layer별로 dto는 조금씩 사용되는데, 모든 dto를 각각의 객체로 관리하는 건 어려운 일이다. 한 예시로 Register DTO와 Login DTO를 생각해보자. // register.dto.ts export class RegisterDto { email!: string; password!: string; username!: string; } // login.dto.ts export class LoginDto { email!: string; password..
PartialType
지금 하고 있는 프로젝트를 express에서 Nest.js로 리팩토링하면서 있었던 일을 정리해보겠습니다. 공식문서를 기반으로 DTO를 재설계하면서 공부한 내용을 정리해봤습니다. (Nest.js는 9.2.0버전입니다) Mapped types란? CRUD와 같은 기능을 만들 때 기본 Entity Type에 변형해서 생성하는 것이 유용한 경우가 많습니다. Nest는 이 작업을 보다 편리하게 하기 위해 타입 변환을 수행하는 여러 유틸리티 기능(이하 4개의 함수)을 제공합니다. - PartialType, PickType, OmitType, IntersectionType PartialType input validation types(이하 DTOs라 칭함)을 만들 때, 우리는 종종 create와 update vari..