DTO(Data Transfer Object)
- 계층간 데이터 교환을 위한 객체
- DB에서 데이터를 얻어 Service나 Controller 등으로 보낼 때 사용하는 객체를 말한다.
- DTO는 데이터가 네트워크를 통해 전송되는 방법을 정의하는 객체이다.
- interface나 class를 이용해서 정의될 수 있다. (하지만 클래스를 이용하는 것을 NestJS에서 추천하고 있다)
DTO를 쓰는 이유
- 데이터 유효성 체크를 하는데 효율적이다.
- 더 안정적인 코드로 만들어준다.(타입스크립트의 타입으로도 사용된다.)
- 정말 많은 프로퍼티를 갖고 여러군데에서 이용하며 갑자기 한 곳에서 Property 이름을 바꿔줘야한다면 오류가 생길 수 있다.