본문 바로가기
토이프로젝트/Nest.js

DTO(Data Transfer Object),TypeORM,DAO

by Box 2021. 8. 11.
728x90

🧐 DAO란?

DAO - 단일 데이터의 접근과 갱신만 처리한다(CRUD)

🧐 Service란?(비즈니스로직)

Service - 여러 DAO를 호출하여 사용자의 요구에 맞게 가공한다

DTO (Data Transfer Object)(데이터가 네트워크를 통해 전송되는 방법을 정의하는 객체)

- req.body 넘어오는 데이터들이 너무많아져 @body로 지정될게 많아지면 하나의 프로퍼티가 달라지면 controller , service 컴포넌트 부분에 수정이 다필요하다.

하지만 dto를 이용하면 dto파일에 수정하고 service 부분에 수정을 하면 더욱 간편하고 가독성과 유지보수가 용이하다고 생각이 든다.

 

- 클래스는 인터페이스와 다르게 런타임에서 작동하기 때문에 파이프 같은 기능을 이용 할때 더 유용합니다.

- 데이터 유효성 체크하는데 효율적

- 더 안정적인 코드로 만들어주며 타입스크립트의 타입으로도 사용가능하다.

 

TypeORM

orm이란

- 코드에 있는 "객체"와 DB에 있는 "데이터"를 편하게 일치시켜주는 도구다

typeorm이란

- 타입스크립트과 함께 사용되어 Node.js, React Native, Expo에서 실행될 수 있는 ORM입니다.

장점

  • 다양한 데이터 베이스를 지원해줍니다.(MariaDB,NOSQL 등)
  • Active Record와 Data Mapper패턴을 지원해줍니다.
  • 코드에 entities와 함께 작업을 할 수 있습니다.

단점

  • 실행 속도가 느리다는 점이 있습니다.
  • 쿼리 작성이 조금 복잡하다는 점도 존재합니다.

'토이프로젝트 > Nest.js' 카테고리의 다른 글

Nest.js[Active Recore & Data Mapper Pattern  (0) 2021.12.11
nestjs, socketIo, redis 구현 준비  (0) 2021.09.19