코딩과로그

[프로젝트 변경사항 기록] DTO 추가를 통한 모듈화 적용 본문

Node.js

[프로젝트 변경사항 기록] DTO 추가를 통한 모듈화 적용

피리음 2023. 2. 2. 09:59

기존에는 클라이언트로부터 받은 정보들에 대한 (데이터 가공 / 검증)을 컨트롤러/서비스에서 처리하고 있었다.

그러나 컨트롤러의 역할은 클라이언트로부터 받은 정보를 응답해주는 역할이므로 데이터 가공 및 검증에 대한 처리까지 담당한다면 응집성이 떨어지므로 DTO 클래스를 만들어 데이터 가공/검증 역할을 위임하도록 하였다.

기존 :

post.service.ts => 기존에는 데이터에 대한 검증까지 담당하고 있었음.

<기존에는 서비스단에서 데이터 검증을 하였다>

변경 :

posts.dto.ts =>  DTO class에서 검증하도록 변경

<DTO class에서 데이터 검증을 담당하도록 변경하였다>

 

기존:

post.controller.ts => 기존에는 데이터에 대한 가공까지 담당하고 있었음.

<기존에는 컨트롤러에서 데이터 가공을 하였다>

 

변경: 

posts.dto.ts =>  DTO class 내의 factory 함수에서 검증하도록 변경

<DTO class에서 데이터 가공에 대한 책임을 맡도록 하였다>

 

 

관련 커밋:

https://github.com/EUNTTO-s/blog-backend/commit/d6be344316210f15b015ece136aa7787358ed743

 

Add: Post에 대한 dto class를 추가함. · EUNTTO-s/blog-backend@d6be344

- 원인: client로부터 받은 post에 대해 생성 및 형식처리를 controller단에서 맡아서 처리하고 있으나 contoroller이 해야하는 역할과는 거리가 멂. - 해결: post에 대한 dto를 추가하여 post의 생성 및 형식

github.com