카테고리 없음

내일배움캠프 13주차 수요일 TIL

news0516 2025. 1. 22. 21:02

DTO란? 
어플리케이션 내에서 데이터 전송을 위한 객체.
(클라이언트와 서버 간에 데이터를 주고받을  때, 어플리케이션의 다양한 계층 간 데이터 전달 시)
NestJS와 같은 프레임워크에서는 DTO를 사용하여
- 데이터의 구조를 명확히 정의하고, (ex : 유저 등록 시 필요한 필드(이메일, 비밀번호 등)를 명시적으로 지정)
- 유효성 검사를 통해 데이터의 무결성을 보장할 수 있고,
( class-validator같은 라이브러리를 함께 사용하여 들어오는 데이터의 형식, 조건을 자동으로 검사할 수 있음)
- 타입 안정성을 보장받기 좋다.

validation 폴더에서 별도로 유효성 검사를 수행하는 것과 비슷?

사용법
DTO 클래스 정의(dto.ts 파일 구성) > 컨트롤러에 import하여 DTO 사용

** 롤 팬 커뮤니티 프로젝트에서는 main.ts에 ValidationPipe를 글로벌 파이프로 설정하여 모든 요청에 대해 자동으로 유효성 검사를 진행하게 됨.


서비스와 컨트롤러 코드를 작성하기 이전에 엔티티부터 생성을 하는 습관
엔티티 : 프리즈마 스키마처럼 테이블의 컬럼과 타입을 정의하는 역할. 차이로는 객체지향적 방식으로 클래스를 사용하여 엔티티를 정의하게됨

커스텀 데코레이터 : 데코레이터의 동작을 우리가 원하는 로직대로 정의할 수 있게되어 필요한 곳에 간편하게 적용할 수 있다. > 중복 감소, 가독성 향상