[NestJS] DTO란 무엇인가?

허창원·2023년 8월 27일
0
post-thumbnail
post-custom-banner

DTO(Data Transfer Object)란?

계층간 데이터 교환을 위한 객체이다.
DB에서 데이터를 얻어 Service나 Controller 등으로 보낼 때 사용하는 객체를 말한다.
DTO는 데이터가 네트워크를 통해 전송되는 방법을 정의하는 객체이다.
interface나 class를 이용해 정의할 수 있지만 NestJS에서는 클래스를 이용하는 것을 추천하고 있다.

DTO를 사용하는 이유는?

  • 데이터 유효성 체크하는데 효율적이다.
  • 더 안정적인 코드를 작성할 수 있다. 타입스크립트의 타입으로 사용된다.

NestJS에서 데이터 처리의 흐름을 보면 게시글에 사용하는 프로퍼티들(title, description 등)을 여러곳에 사용한다.
현직에서 사용하는 프로퍼티의 수가 아주 많다. 이때, 프로퍼티의 이름을 바꿔줘야하는 경우 다른 모든 곳에서 바꿔줘야하기 때문에 유지 보수가 힘들 수 있다.
이러한 문제를 DTO가 해결할 수 있다.

참고 문헌

John Ahn. "따라하면서 배우는 NestJS" 유튜브, 2021, https://www.youtube.com/watch?v=3JminDpCJNE&t=4201s

post-custom-banner

0개의 댓글