인프런 커뮤니티 질문&답변

dev kim님의 프로필 이미지
dev kim

작성한 질문수

Slack 클론 코딩[백엔드 with NestJS + TypeORM]

회원가입 만들기

Entity, Dto 관련해서 궁금증이 있습니다! (오류 사항은 아니지만.. 갑자기 궁금해져서 글을 남기게 되었습니다.)

해결된 질문

작성

·

249

0

안녕하세요. 해당 강의를 보다가 궁금증이 생겨서 글을 남기게 되었습니다.

Entity는 디비 테이블의 컬럼들을 작성(실제 컬럼 및 디비에 없는 컬럼들까지)하고

Dto는 요청에서 받는 타입들을 작성하고 해당 타입들을 Controller 전에 검증해주는 클래스라고 알고 있었습니다.

 

궁금한건 아래 2가지 인 것 같습니다.

  1. Entity는 디비 테이블의 컬럼을 / Dto는 타입 검증을 위한 데코레이터들을 작성하는 클래스로 분리되는 개념으로 생각해왔었는데 잘 못 생각하고 있었던건가요??

  2. 만약, Dto 클래스에 있는 컬럼들을 생략하면 nickName?: string; 처럼 선택적 옵션들과 @IsString()등 타입 검증을 해주는 데코레이터들을 전부 Entity에 작성해주는 건가요?? 저는 Entity는 건들이지 않고 Dto에서 선택적 옵션과 타입 검증들의 데코레이터를 사용하고 있었어서 궁금해졌습니다..!

답변 1

1

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

엔티티는 db의 테이블을 클래스로 매핑한 것이고(저는 relation까지는 같이 넣어두는 편이긴 합니다) dto는 계층간 데이터 전달을 위해 좀 더 범용적으로 쓰이는 객체가 맞습니다. dto쪽에 비즈니스적 검증로직을 몰아두는 게 좋긴 합니다. entity에는 실제 디비에 저장하기 위한 필수적인 조건 검증로직만 붙여놓고요.

dev kim님의 프로필 이미지
dev kim
질문자

아하 넵! 구체적인 답변 해주셔서 감사합니다!

dev kim님의 프로필 이미지
dev kim

작성한 질문수

질문하기