코딩과로그

[프로젝트 변경사항 기록] DTO class에 데코레이터 적용 본문

Node.js

[프로젝트 변경사항 기록] DTO class에 데코레이터 적용

피리음 2023. 2. 2. 13:13

데이터를 가공 및 검증하기 위한 DTO 클래스를 이전에 생성했었다.

https://sororiri.tistory.com/8

 

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

기존에는 클라이언트로부터 받은 정보들에 대한 (데이터 가공 / 검증)을 컨트롤러/서비스에서 처리하고 있었다. 그러나 컨트롤러의 역할은 클라이언트로부터 받은 정보를 응답해주는 역할이므

sororiri.tistory.com

그러나 검증할 내용이 많고 가공할 정보 또한 많아 코드의 가독성이 떨어졌다.

해당 현상을 수정하기 위해 class-validatorclass-transformer 라이브러리를 사용해 데코레이터를 추가해줌으로써 코드의 가독성을 늘렸다.

 

<데이터 검증 부분 관련>

변경 전: 각각의 멤버변수에 대해 생성자함수 내에서 데이터 검증을 하였다.

변경 후: 데코레이터를 통해 각각의 변수에 직접 예외처리 코드를 연결해줌으로써 관리가 용이해졌다.

 

실제 커밋:

https://github.com/EUNTTO-s/blog-backend/pull/26/commits/19c92d3b30d8a782fe3e87dc60cf0b742e38ce49

 

Add: Post에 대한 dto class를 추가함. by SangYunLeee · Pull Request #26 · EUNTTO-s/blog-backend

:: 최근 작업 주제 (하나 이상의 주제를 선택해주세요.) 리팩토링 :: 구현 목표 (해당 브랜치에서 구현하고자 하는 하나의 목표를 설정합니다.) Add: Post에 대한 dto class를 추가함. 원인: client로부터

github.com

 

<데이터 가공 부분 관련>

변경 전: 각각의 멤버변수에 대해 생성자함수 내에서 데이터 가공을 하였다.

변경 후: 각각의 변수에 대해 데코레이터를 통해 데이터 가공을 하였다.

이를 통해 이전보다 데이터 가공처리가 용이해졌다.

 

실제 커밋:

https://github.com/EUNTTO-s/blog-backend/pull/26/commits/9bf9a3f5e9186c097d35f6e228136e2d7ddded08

 

Add: Post에 대한 dto class를 추가함. by SangYunLeee · Pull Request #26 · EUNTTO-s/blog-backend

:: 최근 작업 주제 (하나 이상의 주제를 선택해주세요.) 리팩토링 :: 구현 목표 (해당 브랜치에서 구현하고자 하는 하나의 목표를 설정합니다.) Add: Post에 대한 dto class를 추가함. 원인: client로부터

github.com