해결된 질문
작성
·
249
0
안녕하세요. 해당 강의를 보다가 궁금증이 생겨서 글을 남기게 되었습니다.
Entity는 디비 테이블의 컬럼들을 작성(실제 컬럼 및 디비에 없는 컬럼들까지)하고
Dto는 요청에서 받는 타입들을 작성하고 해당 타입들을 Controller 전에 검증해주는 클래스라고 알고 있었습니다.
궁금한건 아래 2가지 인 것 같습니다.
Entity는 디비 테이블의 컬럼을 / Dto는 타입 검증을 위한 데코레이터들을 작성하는 클래스로 분리되는 개념으로 생각해왔었는데 잘 못 생각하고 있었던건가요??
만약, Dto 클래스에 있는 컬럼들을 생략하면 nickName?: string; 처럼 선택적 옵션들과 @IsString()등 타입 검증을 해주는 데코레이터들을 전부 Entity에 작성해주는 건가요?? 저는 Entity는 건들이지 않고 Dto에서 선택적 옵션과 타입 검증들의 데코레이터를 사용하고 있었어서 궁금해졌습니다..!
답변 1
1
엔티티는 db의 테이블을 클래스로 매핑한 것이고(저는 relation까지는 같이 넣어두는 편이긴 합니다) dto는 계층간 데이터 전달을 위해 좀 더 범용적으로 쓰이는 객체가 맞습니다. dto쪽에 비즈니스적 검증로직을 몰아두는 게 좋긴 합니다. entity에는 실제 디비에 저장하기 위한 필수적인 조건 검증로직만 붙여놓고요.
아하 넵! 구체적인 답변 해주셔서 감사합니다!