inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

탄탄한 백엔드 NestJS, 기초부터 심화까지

Service에서는 유효성 검사를 안해도 되나요?

241

자두

작성한 질문수 27

1

안녕하세요. 강의를 보고 개인 프로젝트를 하고 있습니다.

현재 POST users/:id API를 만들었습니다.

여기서 id는 mongodb의 objectid입니다.

service에 objectid가 아닌 데이터가 전달되면 오류가 발생하기에 컨트롤러에서 직접 만든 MongoIdPipe로 유효성 검사를 해주고 있습니다.

문제는 다른 미들웨어에서 해당 서비스를 주입받아 사용하고 있는데 미들웨어는 pipe을 주입받지 않았기 때문에 서비스에 잘못된 값을 전달 할 시 오류가 발생할 수 있다는 것입니다. 그렇다고 서비스에 유효성 검사 로직을 넣으면 코드가 지저분해지는데 이를 어떻게 해결해야 할까요?

미들웨어에서 유효성 검사를 하고 서비스를 호출하는 것이 맞는 방향일까요?

mongodb express nodejs ssr NestJS

답변 1

0

윤상석

답변이 늦어 죄송합니다.

사실 어떻게 설계하냐에 따라 다릅니다.

미들웨어는 의존되지 않고 가벼울수록 좋습니다. 따라서 필수적인 유효성 검사를 미들웨어 자체 안에서 진행하는 것도 좋은 방법입니다.

저는 보통 서비스 단에서 유효성 검사를 최대한 안하고 서비스 로직에 집중할 수 있도록 다른 디펜던시를 주입 받도록 파이프, 인터셉터, 디티오, 필터, 미들웨어 등 레이어를 끼워넣어서 유효성 검사를 합니다.

추가적인 질문사항은 더 남겨 주세요!

 

프로젝트 환경 세팅할 때 최신 노드 버젼을 사용하시는 분들은 참고하셔도 좋을 것 같아요~

2

103

1

DTO에 대한 질문

1

98

2

백엔드 MVC에서 View의 역할은 무엇인가요?

1

112

2

추가 업데이트 관련 건

0

106

2

nest js 버전문제

0

97

2

mongdb 스키마 공식 문서와 형태가 다른 이유 궁금합니다.

0

113

1

라인 끝에 에러 표시(eslint) 때문에 구글 찾아 보니.

0

84

1

전체 고양이 조회 라우터 중 error.message 오류

0

82

1

캡슐화 추가 설명 중 단일책임원칙 관련 질문

0

115

0

42강 고양이끼리 소통 댓글 구현 중 Schema hasn't been registered for model 'comments' 에러 해결

0

86

1

채팅 이슈

0

139

1

모듈이 더 이상 지원하지 않는답니다

0

216

1

오류가 있습니다

0

114

1

import 에서 오류가 납니다

0

132

1

이런 오류가 나옵니다

0

110

1

에러가 발생합니다

0

117

1

프론트 에러 뜨는데 수정 안해주시나요

0

169

1

emit() broadcast.emit() 질문있습니다

0

109

1

서버연결이 안됩니다.

1

408

1

[PM2][ERROR] Command not found

0

530

1

S3에 업로드까지는 성공했는데 사진이 나오지 않습니다.

0

256

1

error_code : Property 'user' does not exist on type 'Request<ParamsDictionary, any, any, ParsedQs, Record<string, any>>'.ts(2339)

0

608

1

jwt를 따로 연습하고 있는데 env를 못읽는 것 같습니다.

0

331

2

Ec2로 안하시는 이유가 있을까요?

0

346

1